2010-11-29 20 views
2

このイベントは保護されており、マニフェストから宣言できないため、BATTERY_CHANGEDイベントをリッスンするウィジェットがあります。アプリケーションコンストラクタから新しいBroadcastReceiverを作成します。マニフェストからインスタンス化されていなくても、ウィジェット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から、私はRemoteViewsを使ってウィジェットを実際に更新するAppWidgetProviderの静的メソッドを呼び出します。渡されたすべては私のレシーバが消えている時間が経過した後、1時間までflawlessyを動作し、ウィジェットはもう更新されません。私は私が間違ってやっている2.2.1 firmware-

とドロイドでこれをテストしていますか?このウィジェットを更新するための正しい方法です(私はその必要がない場合は、サービスを持ってしたくないので、私はちょうどそのイベントが必要)。私は私の受信機がまだあることを随時確認するためにAlarmManagerを使用する必要がありますか?私はこれをすることができますか?

ありがとうございました。

答えて

0

私はそれがまだある場合は、定期的にチェックするためにAlarmManagerの使用についてのあなたの受信機が時間後に失われてしまった理由を手掛かりが、何を持っていませんか?それが失われたら、再登録することができます。

+1

はい、それはそれは、ウィジェット受信機がアップし、まだの場合でも実行されますので、しかし、私は私がいた、これととてもきれいではないを行うには4-5分のタイマーを必要とする、私はこれを回避するために、これまで実施してきたソリューションですとにかく、より良い解決策を望んで、ありがとう。 – JohnUopini

関連する問題