Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android:AsyncTask运行时按下后退按钮大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个ActivityA,它有一个Button.点击按钮后,它会打开另一个ActivityB.

在ActivityB的onCreate()方法中,我启动AsyncTask,它连接到服务器并获取结果并将其显示在屏幕上.

这是活动代码B:

public class ActivityB extends Activity {
    AsyncFetch asyncFetch;
    @Override
    protected void onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        if(null != savedInstanceStatE) {
            return;
        }
        asyncFetch = new AsyncFetch();
        asyncFetch.execute();
    }
}


private class AsyncFetch extends AsyncTask<Object,Void,Object> {
    @Override
    protected void onPostExecute(Object o) {

    }

    @Override
    protected Object doInBACkground(Object... params) {
        //contacts the http server.
    }
}

在执行AsyncFetch时,当我回击时,ActivityB不会立即被销毁.但是在AsyncTask完成后会被破坏.

如何实现这一点以避免反压冻结?我试过以下

@Override
protected void onDestroy() {
    asyncFetch.cancel(true);
    super.onDestroy();
}

但它仍然等待AsyncTask取消或完成.

像GMail应用程序,当我打开一些东西.在这个过程中,如果我按下后退按钮,它就会从该活动中消失.

有没有其他方法来实现后台进程?任何设计模式来实现这个?请告诉我.

任何帮助表示赞赏.

解决方法

只需处理自己的onBACkPressed()方法
@Override
public void onBACkPressed()
{
    if (asyncFetch != null)
        asyncFetch.cancel(true);

    super.onBACkPressed();
}

大佬总结

以上是大佬教程为你收集整理的Android:AsyncTask运行时按下后退按钮全部内容,希望文章能够帮你解决Android:AsyncTask运行时按下后退按钮所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。