我有一个Android应用程序,它使用服务在应用程序打开时不断更新视图中的文本视图。它使用它发送意图的广播接收器更新它。根据应用程序的性质,即使在应用程序退出/视图消失后,服务仍需要继续运行。显然,在这种情况下在主线程上运行服务并不明智,因为这样做会太多并最终导致应用程序关闭并崩溃。那么保持此服务运行的最佳方式是什么?一个ASyncTask?一个单独的线程?我会如何去做这件事?我有一个像这样的的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方法的参数(??)。在其中开始一项服务似乎并不是最好的主意,没有别的,当然,只用一个线程就可以更好地工作?为了使它按照预期的方式工作,有什么正确的方法可以解决这个问题?顺便说一下,虽然这个功能比在主线程上运行时间长得多,但它在几个小时后仍会崩溃。
服务将始终运行在异步线程中。那么上面的代码说什么? –