2
我有一個需要監聽BATTERY_CHANGED事件的小部件,但是,由於此事件受到保護,無法從清單中聲明我從應用程序構造函數創建一個新的BroadcastReceiver:即使未從Manifest實例化,仍然保持widget的BroadcastReceiver活着
public void onCreate() {
super.onCreate();
if (DEBUG) Log.d(TAG, "onCreate()");
// Register receivers
if (receiver == null) {
receiver = new MYReceiver(this);
}
// Create new intentfilter
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(receiver, intentFilter);
}
然後,從Receiver我調用AppWidgetProvider的靜態方法,它使用RemoteViews實際更新小部件。一切都一直運轉良好,直到1小時後,我的Receiver消失,小部件不再更新。我與2.2.1固件的
我在做什麼錯在Droid的測試呢?這是更新小部件的正確方式(我只需要該事件,所以如果不需要它,我不想要服務)。我是否應該時常使用AlarmManager來確保我的接收器仍在那裏?我可以這樣做嗎?
謝謝。
是的,這就是解決方案我到目前爲止已經實施,以避免這一點,但是我需要一個4-5分鐘計時器做到這一點,它不是那麼幹淨,因爲它會運行,即使小部件接收機仍達,我是無論如何,希望能有更好的解決方案,謝謝。 – JohnUopini 2010-12-02 09:33:49