android-如何在按下后退按钮时停止异步任务执行

android-如何在按下后退按钮时停止异步任务执行,第1张

概述请我有一个包含异步任务方法的活动,即使用户已从该页面移出,该异步任务方法仍在后台继续执行.请提供一种方法,一旦用户按下“后退按钮或从该页面移至另一页面,即可停止执行异步任务.以下是我尝试过的方法,但无法正常工作privateAsyncTasktotalLikesAsync;@Overrideprote

请我有一个包含异步任务方法的活动,即使用户已从该页面移出,该异步任务方法仍在后台继续执行.请提供一种方法,一旦用户按下“后退”按钮或从该页面移至另一页面,即可停止执行异步任务.

以下是我尝试过的方法,但无法正常工作

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-如何在按下后退按钮时停止异步任务执行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1090088.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存