Android - Activity,A,B,C跳過B直接返回A
問題:一個application(即同一個.apk)裡面有A,B,C三個Activity,啟動順序為:A為action=main&Launch即application啟動的第一個activity,A啟動B,B啟動C,那想從關閉C之後直接回到A,而不是回到B??
分析:正常情況下:A啟動B之後,A進入Stop的狀態,並且B進入活動棧棧頂,B啟動C之後,B進入Stop的狀態,並且C進入活動棧棧頂,此時活動棧為從棧底開始為:A-->B-->C,若C通過finish關閉之後,返回到的是B,因為C關閉finish為C出棧,此時處於棧頂的為B,所以C關閉之後系統將棧頂的B顯示。那想finish掉C之後,想顯示A怎麼辦呢?
解決方法一:finish C的同時也finish B,那麼A就處於棧頂,就可以顯示A了。問題又來了,怎麼可以同時finish A呢?
看主要的程式碼:
A啟動 B的程式碼:
Intent intent = new Intent(A.this,B.class);
startActivityForResult(intent,0);
B程式碼:
Intent intent = new Intent(B.this,C.class);
startActivityForResult(intent,1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
setResult(RESULT_OK);
finish();
}
}
C程式碼:
setResult(RESULT_OK);
finish();
解釋:在C關閉finish之前呼叫etResult(RESULT_OK);返回OK給B,B在onActivityResult裡接受到OK之後就可以將自己finsh,這樣就可以做到關閉C,B了。
分析:正常情況下:A啟動B之後,A進入Stop的狀態,並且B進入活動棧棧頂,B啟動C之後,B進入Stop的狀態,並且C進入活動棧棧頂,此時活動棧為從棧底開始為:A-->B-->C,若C通過finish關閉之後,返回到的是B,因為C關閉finish為C出棧,此時處於棧頂的為B,所以C關閉之後系統將棧頂的B顯示。那想finish掉C之後,想顯示A怎麼辦呢?
解決方法一:finish C的同時也finish B,那麼A就處於棧頂,就可以顯示A了。問題又來了,怎麼可以同時finish A呢?
看主要的程式碼:
A啟動 B的程式碼:
Intent intent = new Intent(A.this,B.class);
startActivityForResult(intent,0);
B程式碼:
Intent intent = new Intent(B.this,C.class);
startActivityForResult(intent,1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK){
setResult(RESULT_OK);
finish();
}
}
C程式碼:
setResult(RESULT_OK);
finish();
解釋:在C關閉finish之前呼叫etResult(RESULT_OK);返回OK給B,B在onActivityResult裡接受到OK之後就可以將自己finsh,這樣就可以做到關閉C,B了。
相關文章
- Activity A 跳轉到 Activity B,生命週期的執行過程
- android Activity A和B互相跳轉 生命週期的變化Android
- Activity過渡(跳轉)動畫動畫
- TPshop中B2C與B2B2C的一點理解
- ios A點到B點返回幾條線iOS
- c#裝B指南C#
- 全渠道java b2b b2c o2o平臺Java
- Android Activity跳轉閃屏問題Android
- android之兩個activity相互跳轉Android
- 終於有人把O2O、C2C、B2B、B2C的區別講透了
- t_c_b_s之儲存過程架構儲存過程架構
- Activity跳轉
- lisp 習題 (member '(a) '((a) (b))) 為什麼返回nilLisp
- 電子商務javaweb b2b b2c o2o平臺JavaWeb
- 電子商務 javaweb b2b b2c o2o平臺JavaWeb
- 電子商務 java b2b b2c o2o 平臺Java
- 電子商務java b2b b2c o2o平臺Java
- B2B2C系統平臺解決方案
- B2B2C商品模組資料庫設計資料庫
- BestCoder Round #20 B,C
- Android實現Activity的滑動返回效果Android
- java版springcloud b2b2c社交電商多使用者商城系統b2b2c-Spring Cloud Stream 介紹JavaSpringGCCloud
- android應用Dialog跳轉到ActivityAndroid
- 二)Java版Spring Cloud B2B2C o2o鴻鵠雲商平臺--b2b2c平臺規劃JavaSpringCloud
- SiC B2B2C Shop平臺型電商系統
- 分散式 b2b b2c o2o電子商務 雲平臺分散式
- 微服務b2b b2c o2o電子商務雲平臺微服務
- 分散式b2b b2c o2o電子商務雲平臺分散式
- b2b b2c o2o電子商務微服務雲平臺微服務
- java b2b b2c o2o電子商務微服務平臺Java微服務
- b2b b2c o2o 電子商務微服務雲平臺微服務
- 微服務 b2b b2c o2o 電子商務雲平臺微服務
- 一分鐘看懂B2C和B2B創業的區別——資訊圖創業
- Codeforces Round #399 (A,B,C)
- C/S和B/S結構
- java Spring Cloud b2b2c o2o 電子商務 Eureka【Finchley 版】-b2b2c小程式電子商務JavaSpringCloud
- B2B2C商城系統原始碼要包含哪些功能?原始碼
- DSmall多商戶B2B2C開源商城原始碼原始碼