9

我有一个有两个活动的应用程序。第一个显示有一个按钮,可以打开第二个。

这是第一个的清单定义:

<activity
    android:name="com.example.buttonexample.MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

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

第二个活动:

<activity
    android:name="com.example.buttonexample.MainActivity2"
    android:label="@string/title_activity_main_activity2" android:theme="@android:style/Theme.Translucent">
</activity>

这是我启动第二个活动的方式(通过 OnClickListener 获取第一个活动上的按钮):

public void startSecondActivityClick(View v) {
   Intent startActivity2 = new Intent(this, MainActivity2.class);
   startActivity(startActivity2);
}

这很好用,但是当我通过点击主页和前台应用程序来后台应用程序时。我注意到第一个活动是不断地创建/破坏自己。我通过在 onDestory 方法中添加一些代码来增加静态 int 来验证这一点:

private static int count = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    count++;

}

protected void onDestroy() {
    super.onDestroy();
    Log.i("MainActivity", String.format("Destroyed, %d", count));
}

我还注意到删除半透明主题似乎可以解决此问题。我的问题是有没有办法半透明或类似的东西,但也不能重新启动?另外,我很好奇为什么会发生这种情况。我正在 Galaxy SIII 上的 4.0.1 ICS 上对此进行测试。

4

1 回答 1

0

好的,经过一番挖掘,我能够弄清楚为什么会这样。有人打开了开发者选项之一,“不保留活动”。关闭此功能后,这种情况就停止了。我怀疑这在生产中不会经常发生,因为大多数人可能没有这种设置。您可以在大多数手机的设置 ->“开发者选项”下找到它。

于 2013-03-08T21:42:49.660 回答