0

私は現在、非常にシンプルなカウントダウン タイマー アプリに取り組んでいます。アプリが閉じているときに起動するだけでなく、アプリが開いているときに進行状況を表示できるタイマーの正しいアーキテクチャについてアドバイスが必要です。

私が今まで持っていたのは、100ミリ秒ごとにHandleraを実行してプログレスバーを更新し、このようにハンドラーを再度呼び出す単純なものですRunnable

// ...
// start the timer

tickHandler.postDelayed(runnable, 100);
// ...

private Handler tickHandler = new Handler();

private Runnable runnable = new Runnable(){
    @Override
    public void run() {
        if(tick()){
            tickHandler.postDelayed(this, 100);
        }
    }
};

Timerアプリを閉じても実行できるようにしたかったのです。私は最初に a について考えましたが、その後、仕事をするのに縫い目があり、はるかに使いやすいクラスをService発見しました。AlarmManagerただし、通知センターに通知を投稿できるようにするだけでなく、アプリを再度開いてタイマーが終了したことを示したいと考えています。

これは で実行できますか、それともAlarmManagerを実装する必要がありServiceますか? Activityこのアプリケーションのアーキテクチャは、制御が から に渡され、Serviceさらに重要なことに再び戻されるという点でどのように見えるでしょうか?

ヒントをありがとう!

4

1 に答える 1

1

AlarmManager はまさにあなたが望むことを行うと思います:

Android AlarmManagerから取得

Alarm Manager は、アプリケーションが現在実行されていない場合でも、特定の時間にアプリケーション コードを実行したい場合を対象としています。

したがって、タイマーが終了した後に開始するインテントを登録し、タイマーが停止したことをユーザーに示すことができます。したがって、AlarmManager がそのトリックを行う必要があります。

ところで:サービスを使用することもできますが、他の意味があります。たとえば、起動段階でアプリを起動する必要があるため、外部ストレージにアプリをインストールできなくなります。Android のインストール場所を見る

于 2013-07-09T13:40:04.723 に答える