1

アプリケーションを終了してホーム画面に戻ったり、他のアプリケーションを探索したりしても、TimerTask は機能しますか? フォーラムを読んだところ、BB で TimerTask を使用するのがスレッドのような簡単なメカニズムであることがわかりました。アプリが起動されていなくても(初めて起動した後)、常にスレッドを実行したいので、特定の間隔が来ると、アプリケーションからダイアログを表示できます。私は以下を試しました:(私はこのコードを持っています。 MainScreenClass ではなく、最初のプッシュスクリーンクラスではありません)

 try {
  timer = new Timer();
  // start after 1 second, repeat every 5 second
  // timer.schedule(new ClickTask(), 0, 5000); // seconds*1000
  timer.scheduleAtFixedRate(new ClickTask(), 0, 5000);
 } catch (Exception e) {
  // do nothing
 }

 private class ClickTask extends TimerTask {
  public void run() {
   System.out.println("Test Printing..");
   // Screen screen = new Dialog(Dialog.D_OK, 
   // "Look out!!!", Dialog.OK,
   // Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION),
   // Manager.VERTICAL_SCROLL);
  }
 }

ただし、アプリケーションが起動されたときにのみタイマーを実行します。アプリケーションを終了してデバイスのホーム画面に戻ると、ログが印刷されていないようです (つまり、タイマーが実行されていません)。私のコードは正しいですか?これはタイマーをバックグラウンドでスレッドとして実行する方法ですか? 注: これについては、9530 シミュレーターでテストしています。

助けてくれてありがとう。

4

1 に答える 1

3

TimerTask は、アプリケーションが実際に実行されているとき用です。

間隔の後にアプリケーションを起動するには、PushRegistry.registerAlarm()を参照してください。

于 2009-12-06T21:13:07.983 に答える