0

私はいくつかのテストを行っていますが、AndroidがリモートBroadcastreceiverを強制終了していると思います。

現在、Broadcastreceiverをアクティビティから開始し、Broadcastreceiverに毎分アラームを設定して再開させています。これは数時間(2〜20時間)うまく機能し、その後「勝利死」になります。

なぜ私がこれを取得しているのか、そしてそれを永続的に実行するために何ができるのか誰かが知っていますか?

D/ShutMeUp AlarmReceiver(16161): ALARM TRIGGERED <br>
I/ShutMeUp AlarmReceiver(16161): Doing AWESOME stuff
<br>I/ShutMeUp AlarmReceiver(16161): Month:May Day:Monday Hour:0 Min:10
<br>D/ShutMeUp AlarmReceiver(16161): ALARM END
<br>D/ShutMeUp AlarmReceiver(16161): ALARM TRIGGERED
<br>I/ShutMeUp AlarmReceiver(16161): Doing AWESOME stuff
<br>I/ShutMeUp AlarmReceiver(16161): Month:May Day:Monday Hour:0 Min:11
<br>D/ShutMeUp AlarmReceiver(16161): ALARM END
<br>I/ActivityManager( 1904): Exiting application process se.davidsebela.ShutMeUp  
 (android.os.BinderProxy@4423b0b0)
<br>I/WindowManager( 1904): WIN DEATH: Window{4430bea8se.davidsebela.ShutMeUp/se.davidsebela.ShutMeUp.ShutMeUp paused=false}
<br>I/WindowManager( 1904): WIN DEATH: Window{441f17e8 se.davidsebela.ShutMeUp/se.davidsebela.ShutMeUp.Create paused=false}
<br>I/ActivityManager( 1904): Process se.davidsebela.ShutMeUp:remote (pid 16161) has died.
4

3 に答える 3

1

私は私の問題を解決したと思いますsetRepeating()

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), delayInMilli, pendingIntent);
于 2012-06-01T11:13:37.550 に答える
0

アクティビティのライフサイクル

おそらく、「優先度の高いアプリにはメモリが必要です」->「アプリプロセスが強制終了されました」。

Linux では、アプリが永続的に実行されていることを確認できません。

于 2012-05-31T09:57:07.913 に答える
0

コードがアクティビティからブロードキャスト レシーバーを開始する場合は、それ (およびアラーム マネージャー エントリ) もアクティビティから停止する必要があります。

に登録しonResume()、 に登録解除しonPause()ます。

BroadCastReceiver がメモリ不足になった場合にリロードする場合は、マニフェストを通じて BroadCastReceiver を登録することをお勧めします。この場合、Android OS はロード/アンロードを処理します。

[アップデート]

 > I am starting my Broadcastreceiver from an activity

マニフェストではなくコードで BroadCastReceiver を登録しているというこのステートメントを誤解しました。マニフェストに登録されている場合、android は Broadcastreceiver コードのロードを処理します。あなたの問題は何か違うものです。

于 2012-05-31T10:00:28.440 に答える