我正在使用 API 10 开发一个 android 应用程序,但我遇到了一些问题。我的应用程序应该每 30 分钟向我的桌面监听服务器发送一个 UDP 数据包。我想做的事:
- 即使应用程序关闭,后台服务也应该保留(使用设备的后退按钮)
- 如果设备重新启动,则自动启动服务。
我的问题:
我不能使用 startForeground(),因为我使用的是 API lvl 10。它是在 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 我只看到 2 行生成“NBOW!” 打开应用程序。
我应该怎么办?
public MyActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startService(new Intent(this, HeartbeatService.class));
}
}