3

私は現在、アラームとしてAlarmManagerwith を実装しています。BroadcastReceiverただし、これには大きな欠点が 1 つあります。アプリを強制終了しても消えません。ICSカレンダーアプリでどうなるか試してみたところ、強制終了しても消えてしまいました。「ユーザーがそのようにアプリを閉じた場合、アプリが消えたくない」と言う人がいることは知っています。タスクキラーはどうですか?それが私が探しているケースです。私の方法ではこれを達成できないことは明らかです。これを達成する方法はありますか?

編集: したがって、私が行ったすべての調査では、ユーザーが 2 つの別々のアプリをインストールしなければ、私がやりたいことは不可能であると思われますが、これは理想的ではありません。Google がそのような方法でカレンダー アプリを作成した可能性があります (彼らはソース コードを記述しているため)。これは、市場でトップのカレンダー アプリをテストしたところ、ユーザーが強制的にアプリを閉じたときにそれらすべてがオフにならなかったためです。簡単に言えば、これは単一のアプリケーションで実行できるのでしょうか? 開発者がランダムに実行中のブロードキャストまたはサービスをユーザーが制御できないようにすることを Google が制限しようとしているために、それが可能であるとは思えませんが、これは理解できます。願わくば、これが実際にこれを行う実際の方法が本当にないことに他の人がすぐに気付くのに役立つことを願っています. できることは、ユーザーに警告することだけです。この方法でアプリを閉じると、アラームは表示されません。

4

1 に答える 1

2

私はあなたのアラームで放送受信機を使用しません

ブロードキャスト レシーバは、一般に 2 つの機能を提供します。

1) システムからの放送を聞く

2) 自分以外のアプリが自分のアプリをリクエストできるようにします。

Alarm Manager は次のように新しいアラームを設定します: set(int type, long triggerAtMillis, PendingIntent operation) アラームをスケジュールします。( Android のドキュメントから)

そこに配置された保留中のインテントは、アラームが発生したときに起動されるインテントです。インテントにサービスを配置することで、このインテントでサービスを開始できます。元:

Intent i = new Intent(context, MyService.class)

MyService は Service を拡張するクラスです。(同じように簡単にアクティビティを実行できますが、どこからともなくアクティビティがポップアップするのはひどい設計です。

サービスは、UI を持たないアクティビティのようなものです。基本的に、いくつかのバックグラウンド機能を実行させ、何かが発生したことをユーザーに通知することができます。

于 2012-07-18T05:28:56.133 に答える