0

私は現在、起動時サービスを備えたアプリを作成しています。このサービスは、しばらくすると通知をポップアップし、指定された期間に新しい情報で更新します。現在、これ以上バッテリーを節約する必要はありません。更新シーケンスを機能させたいだけです。

私は問題にぶつかった。ブートBroadcastReceiverを作成し、サービスを開始します。それで、私はタイマーとタイマータスクを介して作業を行います。しかし、私が見たように、通知が削除されたかどうかを確認する簡単な方法はありません。したがって、通知を更新しようとせずに、再作成します。

私がやりたいこと:

private Notification n;

NotifTask extends TimerTask {
    public void run() {
        if(n.exists){
           // Update notification
        }else{
           n = Notification.Builder(context).[customize it].build();
        }
    }
}

また、サービスのonStartで、このタスクを10秒ごとに実行するタイマーを設定します。さて、私の質問は、「n.exists」の部分を意図せずに簡単に行う方法はありますか?

4

1 に答える 1

0

通知を投稿し、この通知が既に存在する場合は、新しい情報で更新されます。存在しない場合は作成されます。必要な動作を得るために特別なことをする必要はないと思います。

NotificationManager.notifiy()のドキュメントから:

ステータスバーに表示される通知を投稿します。同じIDの通知がアプリケーションによってすでに投稿されていて、まだキャンセルされていない場合は、更新された情報に置き換えられます.

于 2012-08-03T11:00:22.573 に答える