我試圖自動啓動使用)在的onPause實施(以下BroadcastReceiver的方法充電我nightclock應用:startActivity()從廣播接收器
BroadcastReceiver test = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
unregisterReceiver(this);
Intent i = new Intent(context, NightClock.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
};
registerReceiver(test, new IntentFilter(Intent.ACTION_POWER_CONNECTED));
的的onReceive()方法時,會引發USB電纜是插入,但該活動未啓動。然而,日誌顯示了這一點:
I/ActivityManager( 79): Starting activity: Intent { flg=0x10000000 cmp=com.meins.nightclock/.NightClock }
任何想法爲什麼日誌說活動已開始,但沒有任何反應?
請更新您的問題,更多來自LogCat - 此行之前的幾行以及此行之後的十幾行。另外,爲什麼'FLAG_ACTIVITY_NEW_TASK'?還有,當ACTION_POWER_CONNECTED發生時,註冊此'BroadcastReceiver'的活動還在嗎? – CommonsWare 2010-10-03 13:50:23
連接電源時,LogCat中沒有更多行。 'BroadcastReceiver'被註冊在它應該開始的同一個活動中。此活動仍在後臺運行(LogCat應用程序已置於前臺)。如果這個活動在任務管理器中被終止,那麼'BroadcastReceiver'似乎根本不會被觸發。這種方法是否從一開始就錯誤地自動啓動我的應用程序? – Gubbel 2010-10-03 14:47:20