我有一個AlarmManager
,每10分鐘顯示一個Toast
。但是當os在後臺關閉應用程序時,所以我的AlarmManager
不再工作。我必須做什麼?我的鬧鐘經理在我的應用程序在android中死亡後死亡
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context con, Intent arg1) {
Global.ShowMessage(con, Global.GetCurrentDateTime());
}
}
在Manifest.xml
:
<receiver android:name=".MyReceiver" > </receiver>
在主
Activity
:
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 10);
long time = cal.getTimeInMillis();
Intent i = new Intent(this, MyReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(this, 9854, i, PendingIntent.FLAG_UPDATE_CURRENT);
// am.set(AlarmManager.RTC_WAKEUP,time,pi);
am.setInexactRepeating(AlarmManager.RTC_WAKEUP, time, 600 * 1000, pi);
由於它與主線程,這是正常的。你將需要使用一個服務,有更多的機會生存一些系統的清除,但沒有保證 – AxelH
在你的接收器的清單聲明中,你需要'android:enabled =「true」'和'android:exported =「true」' –
@ nickfriskel你有這個來源嗎?我一直認爲'exported'用於讓實體可以被其他應用程序看到,並且啓用非常明顯。它與一些系統kill信號無關,以恢復一些內存 – AxelH