【发布时间】:2015-06-13 10:02:11
【问题描述】:
使用 BroadCastReceiver,我在智能手机启动时执行服务:
public class BootReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent startServiceIntent = new Intent(context, MyService.class);
context.startService(startServiceIntent);
}
}
我的服务:
private Runnable myRunnable = new Runnable() {
public void run() {
parsing.cancel(true);
parsing = new Parsing();
parsing.execute();
handler.postDelayed(this, timeoutUpdate);
}
};
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
handler.removeCallbacks(myRunnable);
handler.postDelayed(myRunnable, 1000);
return Service.START_STICKY;
}
该服务实际上是在启动时执行的,但是如果我在两次执行之间设置了 1 小时的超时时间,则服务不会执行(可能是系统正在杀死它)。否则,如果我在重复之间设置 60 秒,则一切正常。 我该怎么做?谢谢。
【问题讨论】:
标签: android service broadcastreceiver android-service android-background