相关疑难解决方法(0)

android 4.4.X:taskAffinity&launchmode vs. Activity生命周期

我开发了一个简单的应用程序,它解释了我注意到的Android 4.4.X设备上的一些奇怪的行为.

假设我想要进行2次"主要"活动,其中第一次活动表示"Hello"(通过启动"HelloActivity")每秒恢复一次,第二次android:launchMode="singleTask" android:taskAffinity=".MyAffinity"定义.第二个是由第一个开始的.

我的守则

清单非常简单:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="14" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name="com.example.affinitylaunchmodebugtest.MainActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <category android:name="android.intent.category.DEFAULT" />

            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:label="HELLO"
        android:name="com.example.affinitylaunchmodebugtest.HelloActivity"
        android:configChanges="keyboardHidden|orientation|screenSize">
    </activity>

    <activity
        android:label="AffinityTestActivity"
        android:name="com.example.affinitylaunchmodebugtest.AffinityTestActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:launchMode="singleTask"
        android:taskAffinity=".MyAffinity">
    </activity>
</application>
Run Code Online (Sandbox Code Playgroud)

MainActivity在按钮单击时启动AffinityTestActivity并记录其生命周期.它还会在每次恢复时启动HelloActivity:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        System.out.println(this+" onCreate");
        super.onCreate(savedInstanceState);

        Button b = new Button(MainActivity.this);
        b.setText("START AFFINITY TEST ACTIVITY");
        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View …
Run Code Online (Sandbox Code Playgroud)

android taskaffinity launchmode android-activity

9
推荐指数
1
解决办法
1984
查看次数