2012-08-07 58 views
0

我有3個活動,然後我從A導航到B,從B導航到C.堆棧是C-B-A(頂部是C)。 C活動有一個Runnable,可以在每個時間間隔工作,並連接到更新UI的Web服務。如果活動C來到後臺,則會被銷燬,然後再次到達前臺,任務將從主活動A開始。我想回到C活動。有可能嗎?當活動來到前臺去主要活動不是堆棧頂部

在模擬器工作正常,但在我的智能手機只有這個應用程序運行,總是destory整個應用程序..我可以做點什麼嗎?如果我做了與用戶界面分開的服務,可以改進嗎?

EDIT2:我嘗試AndroidManifest

<activity android:name=".ActivityA" android:label="@string/app_name" 
     android:alwaysRetainTaskState="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" />  
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <category android:name="android.intent.category.BROWSABLE"/> 
      <data android:scheme="oauthht" android:host="hattrick"/> 
     </intent-filter>   
    </activity> 
    <activity android:name=".ActivityB" android:label="@string/ActivityB" 
       android:screenOrientation="portrait"></activity> 
    <activity android:name=".ActivityC" android:label="@string/ActivityC" 
       android:screenOrientation="portrait" 
       android:launchMode="singleTask"> 

EDIT2此聲明:和代碼來調用活動:

在主活動中:

public void onClickButtonB(View button) { 
    Intent intent = new Intent(); 
    intent.setComponent(new ComponentName(this,ActivityB.class)); 
    startActivity(intent); 
} 

在活動B中:

Bundle bundle = new Bundle(); 
bundle.putLong("selectedMatch", matchID);   

Intent liveIntent = new Intent(); 
liveIntent.setComponent(new ComponentName(ActivityB.this, ActivityC.class)); 
liveIntent.putExtras(bundle); 
startActivity(liveIntent); 
+0

聽起來像你的Activity C可以/應該是一個在後臺運行的服務。 – themanatuf 2012-08-07 16:21:26

+0

Themanatuf,使zero.sense給我。 – tolgap 2012-08-07 16:31:28

+0

你如何在代碼中啓動你的活動?請包括代碼。這聽起來像你包括混亂了默認行爲的標誌。 – 2012-08-07 17:13:15

回答

1

我知道是哪個問題。應用程序在後臺崩潰,但異常被捕獲。這會在後臺重新啓動應用程序並誤導我。 :-S

相關問題