2011-06-10 84 views
-3

我是新到Android。實際上,一個處理程序每​​30秒在主頁活動A中運行以檢查網絡連接。如何關閉所有子活動由父母在android系統

如果我去的活動下用A-> B-> C,如果在那個時候沒有網絡連接的話,我想關閉活動B和C,然後想顯示活動一個消息框。

但我的問題是我的處理程序是運行在家庭活動A.每30秒,但如果我是在練習C或其他一些活動如何找到這活動是我目前現在集中應用。然後,我要完成這些兒童的活動,並希望展示首頁活動A,我有一些孩子9個活動活動B.

我聽說過使用「FLAG_ACTIVITY_CLEAR_TOP」。我在Home Activity A本身的處理程序中使用瞭如下代碼。但有錯誤。

 Intent intent = new Intent(ctx, Homepage.class);  
     intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | 
      Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    ctx.startActivity(intent); 

這裏Homepage.class是我的家活動A,我設置清單文件活性

android:launchMode="singleTop"  

請幫幫忙!

+2

爲什麼在3小時內發佈相同的問題3次?如果你的問題給出的答案有問題,只需在評論中添加一個問題 – THelper 2011-06-10 09:58:14

回答

0

當調用胡亞蓉C,在活動乙呼叫結束,從C調用活動A時,呼叫結束()在活動!C

+0

抱歉根據我的任務,我無法做到這一點,如果我按回來按鈕,它應該來到B,應該來到A.如果我' m在活動C和當時如果網絡連接被禁用,那麼我想在後臺顯示帶有活動A的消息。 – Vignesh 2011-06-10 06:45:44

0

你可以,如果你開始使用startActivityForResult活動使用,據我兩種方式,

,那麼你可以調用finish()在這個新的活動,當你用它做,它會返回控制開始它的活動。

或以其他方式,可能是我錯了,裏面的onStop '覆蓋方法'

通話結束。

+0

不,實際上處理程序在活動A中每30秒運行一次以檢查網絡連接。如果我在活動C中,如果沒有網絡連接,那麼我想關閉活動B和C,然後想在活動A中顯示消息框。但是我的問題是我的處理程序無法找到現在聚焦的活動。 – Vignesh 2011-06-10 06:48:49

0

做出統一resultCode爲關閉子活動。例如。你使(應該是int)作爲resultCode。如果你希望你的活動結束並返回直接到父活動,您將發送resultCode設置爲911:

setResult(911); finish();

在每一個孩子的活動,你重寫onActivityResult並檢查resultCode爲是911,如果是,然後致電setResult(911); finish();,直到您回到您的家長活動。希望這可以幫助!

4

您可以啓動活動A並關閉所有其他活動。 您必須創建新的意圖,並添加標誌FLAG_ACTIVITY_CLEAR_TOP


Intent activityA = new Intent(context, ActivityA.class); 
activityA.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
context.StartActivity(activityA); 

這將關閉在堆棧中,並在活動的頂部的所有活動

0

例如,如果你想開始intentB,您可以在舊活動中執行以下操作:

Intent intentB = new Intent();
intentB.setClass(XYZ.this, abc.class);
intentB.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intentB);