«

AsyncTask onPostExecute()不执行,与JPush冲突

时间:2024-3-2 19:54     作者:韩俊     分类: Android


今天做项目的时候,出现了奇怪的状况,AsyncTask 的onPostExecute()方法不执行,上网查找了一番,都没有找到原因,但是网上大多数原因介绍是需要UI主线程中调用AsynTask,突然想起今天还添加了极光推送相关代码,于是,将极光推送代码注释后,果然onPostExecute()能够正常执行。

于是去极光推送官网查找,果然发现有相关问题,JPUSH会影响AsyncTask的运行,在doInBackground方法里会抛出异常,所以onPostExecute()无法正常运行,解决方法: 在你Application的onCreate方法里加入以下代码


相关代码:

/**
 * For developer startup JPush SDK
 * 
 * 一般建议在自定义 Application 类里初始化。也可以在主 Activity 里。
 */

public class MyApplication extends Application {
    private static final String TAG = "JPush";

    @Override
    public void onCreate() {
        super.onCreate();
        Log.d(TAG, "[MyApplication] onCreate");
        try {
            Class.forName("android.os.AsyncTask");
            JPushInterface.setDebugMode(true); // 设置开启日志,发布时请关闭日志
            JPushInterface.init(this); // 初始化 JPush
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

以上就是解决AsyncTask onPostExecute()不执行的方法,希望对大家有帮助。

版权声明:本文为博主原创文章,未经博主允许不得转载。

标签: android

热门推荐