Android 解決qq分享後返回程式出現的Bug

來源:互聯網
上載者:User

標籤:--   art   activity   ext   boolean   sha   classname   ems   啟動   

問題:當我們使用qq分享時,分享成功後選擇留在qq,這個時候按home鍵,回到手機主介面,在點擊回到我的app,這個時候會出現介面顯示出來了,但是任何事件都不響應,即按鈕沒反應。

分析:這個時候回到我們的app時,會發現activity的生命週期只走了 onRestart()---onStart(),走到這裡就結束了,onResume()並沒有執行,所以介面不響應

           這個時候我們又會發現qq分享用到的的一個AssistActivity 它的生命週期:.: --onActivityResult()---onStart()---onResume()

結論:至此,我們發現了原因,是這個AssistActivity的問題。

解決:我們可以在我們程式的onStart()方法判斷一下,如果這個AssistActivity處在棧頂就把它清除掉。

 

@Overrideprotected void onStart() {    super.onStart();    Log.i("---share----", "-----start");    if(isNeedRestart()){        Intent intent = new Intent(context, this.getClass());        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); //清除棧頂的activity        intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);//不顯示多餘的動畫,假裝沒有重新啟動 //記得帶需要的參數        startActivity(intent);    }}
private boolean isNeedRestart(){    ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);    List<ActivityManager.RunningTaskInfo> tasks = am.getRunningTasks(1);    if (!tasks.isEmpty()) {        ComponentName topActivity = tasks.get(0).topActivity;        ActivityManager.RunningTaskInfo taskInfo = tasks.get(0);        if (topActivity.getPackageName().equals(context.getPackageName())) {        // 若當前棧頂介面是AssistActivity,則需要手動關閉            if (topActivity.getClassName().equals("com.tencent.connect.common.AssistActivity"))            return true;        }    }    return false;}

 

Android 解決qq分享後返回程式出現的Bug

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.