
请我有一个包含异步任务方法的活动,即使用户已从该页面移出,该异步任务方法仍在后台继续执行.请提供一种方法,一旦用户按下“后退”按钮或从该页面移至另一页面,即可停止执行异步任务.
以下是我尝试过的方法,但无法正常工作
private AsyncTask totallikesAsync;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity); context = this; totallikesAsync = new Totallikes().execute(msgiD);}@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); return true;}@OverrIDepublic boolean onoptionsItemSelected(MenuItem menuItem) { switch (menuItem.getItemID()) { case androID.R.ID.home: totallikesAsync.cancel(true); this.finish(); break; case R.ID.share: new ShareImage().execute(msgimage); default: return super.onoptionsItemSelected(menuItem); } return true;}private class Totallikes extends AsyncTask<String, String, JsONObject> { @OverrIDe protected voID onPreExecute() { super.onPreExecute(); } @OverrIDe protected JsONObject doInBackground(String... msgiDs) { UserFunctions userFunction = new UserFunctions(); String msgsID = msgiDs[0]; JsONObject Json=null; if(!isCancelled()){ //This gets all the information unread from the server Json = userFunction.Totallikes(context, msgsID); } return Json; } @OverrIDe protected voID onPostExecute(JsONObject Json) { /** * Checks for success message. **/ if (Json != null) { ... } else { ... }}}更新
测试完以下所有答案后,即使按下后退按钮,它们都允许在异步任务中执行doinbackground.我想要一种情况,一旦按下“后退”按钮,背景将被取消.
解决方法:
@OverrIDepublic voID onBackpressed() { super.onBackpressed(); if (totallikesAsync != null && totallikesAsync.getStatus().equals(AsyncTask.Status.RUNNING)) { totallikesAsync.cancel(true); }} 总结 以上是内存溢出为你收集整理的android-如何在按下后退按钮时停止异步任务执行全部内容,希望文章能够帮你解决android-如何在按下后退按钮时停止异步任务执行所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)