2012-02-20 4 views
0

this articleのようにタイマーを設定すると、私はいくつかのことが分かりません。私は2番目の質問が明確な答えを持っているかもしれないし、理解していないかも知れないので、私の最初の質問に答えることができれば答えとして受け入れます。MonoDroidタイマー

1)タイマーが1つのアクティビティから開始され、停止するように指示されるまで5分ごとに実行されるように設定されている場合、アクティビティを変更したユーザーによる終了またはバックグラウンドへのアクティビティは影響しますか?私がタイマーを使用したことは非常に間欠的で、私が間違っていたか、タイマーに固有の問題であるかどうかはわかりません。

2)私は、アンドロイドでもタイマーの使用を推奨していないと言う人がいます。私はpostDelayed()の推奨を見てきましたが、私が参照した記事で説明したように、X分ごとに繰り返す必要のあるタスクについては、問題があります。欠けているオプションがありますか?

基本的には、情報をサーバーに同期する前に、インターネットへの接続を確認しています。デバイスが接続されていない場合は、接続を確認するタイマーを起動し、成功するまでタイマーが停止するまで5分または10分ごとにSyncメソッドを実行しようとします。このタイマーは、どのアクティビティーからでも開始できる必要があり、現在使用されているアクティビティーに関係なく、5分または10分ごとに実行され、すべてのアクティビティーから取り消すことができなければなりません。

答えて

0

TinyIoC/TinyMessengerをご覧ください。特定のサービスのためのメッセージを定義

  1. 私はあなたがで記述しているものと同様のことを行います。

  2. 興味のあるメッセージを購読するサービスをインスタンス化する
  3. サービスのメッセージを購読するときに購読します。あなたは新しいスレッド、タイマーを実装するサービスにキックオフした場合、あなたはどこからそれを一時停止/停止/起動することができますし、それが(完了/エラーなど)を放送するすべてのメッセージを受け取ることができ

コールバックがユーザーにメッセージを書き込む必要がある場合は、UIスレッドを明示的に実行するように注意してください。

サービスを停止すると、そのサービスが実行されているスレッドへの参照があれば、サービスの停止メッセージをブロードキャストしてjoin()を呼び出します。

希望に役立ちます。