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));
}
}