5

わかりましたので、2 つの BroadcastReceiver を登録しました。アプリが閉じられると、両方が適切なタイミングで起動し、適切な処理を実行します。

アプリが閉じられてから (AppKiller などで) 強制終了された場合、レシーバーはブロードキャストを受信せず、何も起こりません。

メモリ不足のために親アプリが強制終了された場合もおそらく同じことが起こるので、これらのブロードキャストが確実に起動/受信されるようにするにはどうすればよいですか。API は、アプリが強制終了された場合でも起動する必要があると述べていますが、他の誰かがこの状況を経験したことがありますか?

それが私のマニフェストに役立つ場合:

<!-- receivers for AlarmManager --> 
<receiver 
android:exported="true" 
android:label="Shift roster updating calendar." 
android:name="com.skooter.shiftroster.backend.service.UpdateCalendar" 
> 
</receiver> 
<receiver 
android:exported="true" 
android:label="Shift roster checking alarm." 
android:name="com.skooter.shiftroster.backend.service.SetWakeup" 
> 
</receiver> 

AlarmManager/BroadcastReceivers では難解なことは何も行われていません

4

1 に答える 1

0

メモリ不足のために親アプリが強制終了された場合も、おそらく同じことが起こります

あなたの推測は間違っています。いわゆる「タスク キラー」は、メモリ不足の状態では使用されない特定の API を悪用しています。「タスク キラー」API は、スケジュールされたアラームを含め、すべてを無効にします。

さらに、そもそも親アプリがメモリにないことを願っています。使用の要点はAlarmManager、「親アプリ」が何もしていないときにメモリを消費しないようにすることです。

于 2010-05-15T16:21:54.610 に答える