2011-10-27 74 views
0

我試圖讓一個計劃的活動每隔一小時左右開始,所有在後臺工作。啓動時啓動計劃活動的推薦方法?

現在我有一個BroadcastReceiver在設備啓動時啓動。 BroadcastReceiver創建一個PendingIntent給一個活動(稱爲AlarmController),該活動創建了我需要的所有必要方法,以使計劃的活動停止。

如何,這似乎沒有工作。 這是我BroadcastReciever類的onReceive {}看起來像是張玉峯,我的主要活動的onCreate {}(僅用於測試)

Intent intent = new Intent(serviceactivirt.this, AlarmController.class); 
    PendingIntent sender = PendingIntent.getActivity(serviceactivirt.this, 0, intent, 0); 
    try { 
     sender.send(); 
    } catch (CanceledException e) { 
     Toast.makeText(getApplicationContext(), "FEJLSAN", Toast.LENGTH_LONG).show(); 
    } 

這實際工作,除了在啓動我的應用程序崩潰,但計劃的活動正在工作... 任何想法?這是「做到這一點的方式」,還是有一個更推薦的方式? 乾杯!

解決方案:

具有BroadcastReciever調用一個活動相反,我提出的BroadcastReciever開始服務。並以程序化方式將我的活動更改爲服務。 太棒了!

+0

爲什麼活動會崩潰? – slayton

回答

0

我試圖讓一個計劃的活動每隔一小時左右發生,所有工作都在後臺進行。

請允許用戶配置其他選項,例如使用Notification,而不是被一個活動佔據前臺中斷。

現在我有一個BroadcastReceiver,它可以在設備啓動時啓動。

您只需要爲您的小時事件設置一個AlarmManager時間表。您的PendingIntentAlarmManager可能是您通過getActivity()獲得的。

如何,這似乎沒有工作。

如果您想開始活動,請致電startActivity()。不要創建PendingIntent,然後立即send()PendingIntent

此外,擺脫getApplicationContext(),並簡單地使用this

除了在推出

使用adb logcat我的應用程序崩潰,DDMS,或在Eclipse中DDMS角度來考察logcat的,看看你的崩潰相關的堆棧跟蹤。