我需要这方面的帮助:
我必须能够结束活动,再次启动它并从活动的新“实例”停止IntentService。
public class MyService extends IntentService {
public MyService()
{
super("MyService");
}
public MyService(String name) {
super(name);
}
@Override
protected void onHandleIntent(Intent intent) {
Log.d("SERVICE", "start");
while(true)
{
SystemClock.sleep(1000);
Log.d("SERVICE", "tick");
}
}
@Override
public void onDestroy() {
Log.d("SERVICE", "end");
super.onDestroy();
}
...
Intent intent = new Intent(getApplicationContext(), MyService.class);
startService(intent);
我试过调用stopService()
,但它没有用。有没有解决方法怎么做?
提前谢谢。
答案 0 :(得分:2)
服务在循环和睡眠中做一些工作一段时间。
恕我直言,这是对IntentService
的不当使用。请创建一个常规Service
,使用您自己管理的自己的后台主题。
有没有解决方法怎么做?
使用您自己管理的自己的后台线程创建常规Service
。例如,您可以在服务ScheduledExecutorService
中使用sleep()
或shutdown()
来使用shutdownNow()
代替onDestroy()
循环。