本文地址:http://www.cnblogs.com/wuyudong/p/5903707.html,轉載請註明源地址。 在手機衛士之前的版本升級的對話框中: 有的用戶暫時不想更新,沒有點擊“稍後再說”,而是選擇點擊回退按鍵,那麼這時候的邏輯應該是讓用戶進入home界面而不是splash界面。所以 ...
本文地址:http://www.cnblogs.com/wuyudong/p/5903707.html,轉載請註明源地址。
在手機衛士之前的版本升級的對話框中:
有的用戶暫時不想更新,沒有點擊“稍後再說”,而是選擇點擊回退按鍵,那麼這時候的邏輯應該是讓用戶進入home界面而不是splash界面。所以需要添加代碼邏輯來控制,添加的代碼如下:
builder.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { //即使用戶點擊取消,也需要讓其進入應用程式主界面 enterHome(); dialog.dismiss(); } });
點擊“立即更新”後,會彈出是否安裝新版app的activity界面
此時,如果點擊“取消”,則會回到splash界面,顯然不是我們想看到的,這裡的意願是跳轉到HomeActivity,示意圖如下:
要實現這個只需將startActivity改為startActivityForResult
/** * 安裝對應的apk * @param file 安裝文件 */ protected void installApk(File file) { // 系統應用界面,源碼,安裝apk的入口 Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); intent.addCategory("android.intent.category.DEFAULT"); intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive"); //startActivity(intent); startActivityForResult(intent, 0); } //開啟一個activity後,返回結果調用的方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { enterHome(); super.onActivityResult(requestCode, resultCode, data); }