1

API 10 を使用して Android アプリケーションを開発していますが、いくつかの問題に直面しています。アプリケーションは 30 分ごとに UDP パケットをデスクトップ リッスン サーバーに送信する必要があります。私がしたいこと:

  • アプリケーションが閉じられた場合でも、バックグラウンド サービスは維持される必要があります (デバイスの [戻る] ボタンを使用)。
  • デバイスが再起動された場合にサービスを自動的に開始します。

私の問題:

API レベル 10 を使用しているため、startForeground() を使用できません。これは API 11 で実装されました。アプリケーションはバックグラウンドに留まりません。

私が何をした:

public class HeartbeatService extends Service{

   @Override
   public int onStartCommand(Intent intent, int flags, int startId) {
      Log.e("er", "Started !");

      TimerTask task = new TimerTask() {

      @Override
      public void run() {
      Log.e("err", "NBOW !");
         }
      };

      Timer timer = new Timer();
      timer.schedule(task, 1000); // every 1 sec for testing

      return super.onStartCommand(intent, flags, startId);
   }   

}

logcat を使用すると、「NBOW !」という 2 行しか生成されません。アプリケーションを開いた状態。

私は何をすべきか?

public MyActivity extends Activity{

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

      startService(new Intent(this, HeartbeatService.class));
   }

}
4

1 に答える 1