2

私はジェリービーン用に開発されたアプリケーションを持っています。そこでは、アラームマネージャーを使用して将来実行されるイベントをスケジュールします。アプリケーションがフォアグラウンドまたはバックグラウンドで実行されている限り、スケジュールされたイベントは期待どおりに実行されます。しかし、タスク マネージャーでアプリケーションを強制終了すると、アラーム マネージャーからのブロードキャストを受信できなくなります。

さまざまな投稿やブログで示唆されているように、Intent.Flag_Include_Stopped_Packages を使用してみました。しかし、それは役に立たなかった。このフラグをインテントに含めると、sendBroadcast(intent) に対してのみ機能します。ただし、保留中の意図が使用されているアラーム マネージャーの場合は機能しません。

アラームをスケジュールするための私のコード

Intent intent = new Intent("com.dummy.intent");  
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(),dummyId, intent,                          PendingIntent.FLAG_CANCEL_CURRENT);

AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, scheduledAlarm.getTimeInMillis(), pi);

私のメインフェスト

<receiver android:name="com.example.androidScheduling.alarmReceiver"                         
          android:enabled="true"
          android:exported="true" 
          android:process=":remote">

       <intent-filter>
           <action android:name="com.dummy.intent"></action>
       </intent-filter>

</receiver>

誰かが私を助けてくれますか?android:process = ":remote"マニフェストにレシーバーを含めてみました。しかし、それでも役に立ちませんでした。

4

1 に答える 1