从活动停止IntentService(stop IntentService from Activit

2019-10-16 15:36发布

我需要这样的情况有所帮助:

  1. 我有活动,有什么开始IntentService。
  2. 服务做的,而周期和睡眠的一些工作了一段时间。
  3. 服务的主要周期是无止境的,所以我需要再次从活动停止。
  4. 我必须能够结束活动,再次启动它,并从新的活动的“实例”停止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()但它不工作。 是否有任何解决方案是如何做到这一点? 提前致谢。

Answer 1:

服务做的,而周期和睡眠的一些工作了一段时间。

恕我直言,这是一个不恰当使用IntentService 。 请创建一个普通的Service ,与您自己管理自己的后台线程。

是否有任何解决方案是如何做到这一点?

创建一个普通的Service ,与您自己管理自己的后台线程。 例如,你可以使用ScheduledExecutorService ,而不是你的sleep()循环,使用shutdown()shutdownNow()在服务的onDestroy()



文章来源: stop IntentService from Activity