当活动到达前景时,转到主活动而不是堆栈顶部

时间:2012-08-07 16:18:41

标签: android android-activity lifecycle android-lifecycle

我有3个活动,然后我从A导航到B,从B导航到C.堆栈是C-B-A(顶部有C)。 C Activity具有可运行每个时间间隔的Runnable,并连接到更新UI的Web服务。如果活动C到达后台,被销毁,然后再次出现前景,则任务以de main Activity A开始。我想回到C活动。有可能吗?

在模拟器中工作正常但在我的智能手机中只运行此应用程序,总是会破坏整个应用程序..我可以做某事吗?如果我提供与UI分开的服务,可以改进吗?

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:调用活动的代码:

主要活动A:

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); 

1 个答案:

答案 0 :(得分:1)

我知道哪个是问题所在。应用程序在后台崩溃,但异常被捕获。这会在后台重新启动应用程序并误导我。 :-S