AsyncTask onPostExecute()不執行,與JPush衝突

        今天做項目的時候,出現了奇怪的狀況,AsyncTask 的onPostExecute()方法不執行,上網查找了一番,都沒有找到原因,但是網上大多數原因介紹是需要UI主線程中調用AsynTask,突然想起今天還添加了極光推送相關代碼,於是,將極光推送代碼註釋後,果然onPostExecute()能夠正常執行。

        於是去極光推送官網查找,果然發現有相關問題,JPUSH會影響AsyncTask的運行,在doInBackground方法裏會拋出異常,所以onPostExecute()無法正常運行,解決方法: 在你ApplicationonCreate方法里加入以下代碼


相關代碼:
/**
 * 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()不執行的方法,希望對大家有幫助。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章