我有一个Android应用程序,它使用服务时,应用程序是开放的,不断在视图更新一个TextView。 它使用它发送给意图广播接收机它更新。 通过该应用程序的性质,服务需要继续应用程序已经结束,也/视图不见了运行。 显然,这是不明智的,在这种情况下,运行在主线程的服务,因为这将霸占了太多,最终强制关闭和崩溃的应用程序。 那么什么是继续执行此服务的最佳方式? 一个的AsyncTask? 一个单独的线程? 我将如何去这样做呢? 我有一个像这样的的AsyncTask试了一下:
private class MyTask extends AsyncTask {
@Override
protected Object doInBackground(Object... objects) {
return getActivity().getApplicationContext().startService(intent);
}
@Override
protected void onCancelled() {
getActivity().getApplicationContext().stopService(intent);
super.onCancelled();
}
}
哦,是的,我使用getActivity()。getApplicationContext(),因为这是一个片段内。
因此,这正常工作; 我叫MyTask.execute()的时候,我想谈谈它和MyTask.cancel(真)时,我想阻止它,但我敢肯定,我不使用它,它应该如何使用。 我甚至不知道我应该为execute方法(?)的参数来使用。 它似乎并不是刚刚开始它的服务,没有别的好主意,一定会更好地工作,只使用一个线程? 什么是去了解这一点,以便为它工作,它的目的是方式的正确方法? 顺便说一句,这虽然比主线程上运行它长得多的工作,但它仍然数小时后崩溃。