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 に答える