【发布时间】:2025-12-24 17:25:11
【问题描述】:
我有一个有两个活动的应用程序。 第一个显示有一个按钮,可以打开第二个。
这是第一个的 Manifiest 定义:
<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 上对此进行测试。
【问题讨论】:
-
它不断地创造和毁灭自己是什么意思?当您仅查看第二个活动一次时,您的意思是它正在创建和销毁多次吗?你能给我们举个日志输出的例子吗?
-
我的意思是 onCreate 和 onDestroy 被快速连续调用。我将添加一些日志输出。
-
好吧,经过一番挖掘,我能够弄清楚为什么会发生这种情况。有人打开了开发者选项之一,“不保留活动”。关闭此功能后,这种情况就停止了。我怀疑这在生产中不会经常发生,因为大多数人可能没有这种设置。
-
嗨,出于好奇,我在哪里可以打开此选项以“不保留活动”?
-
@noahd 您可能希望将有关“开发人员选项”的评论移至答案。不是每个人都阅读 cmets,我知道这样的答案我会投赞成票
标签: android android-theme