5

我正在尝试使用意图过滤器 ACTION_PACKAGE_FIRST_LAUNCH 使应用程序在首次启动时执行一些任务,但是它没有被广播接收器捕获我的清单

  <receiver android:name=".reminder.ReminderActionReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_FIRST_LAUNCH" />
            <action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
            <action android:name="android.intent.action.BOOT_COMPLETED" />
        </intent-filter>

这是我的广播接收器实现

  this.context = context;
    String mAction = intent.getAction();
    Log.i("r", mAction);
    if (mAction == Intent.ACTION_PACKAGE_DATA_CLEARED) {

    } else if (mAction == Intent.ACTION_PACKAGE_FIRST_LAUNCH) {


    }

我怎样才能让它在应用程序首次启动时启动?

4

1 回答 1

4

抱歉,除了 boot_completed 之外的意图仅发送到 Play 商店。但是做你需要做的事情相对简单。而是使用 SharedPreferences,例如:

public static final String KEY_PREFS_FIRST_LAUNCH = "first_launch";
// ...
SharedPreferences prefs = SharedPreferences.getDefaultSharedPreferences(this);
if(prefs.getBoolean(KEY_PREFS_FIRST_LAUNCH, true))
{
    //first launch
    prefs.edit().putBoolean(KEY_PREFS_FIRST_LAUNCH,false).commit();
}
于 2013-07-07T08:00:05.590 回答