让我说我有2个活动A和B.我从A到B然后点击Home按钮。在A中初始化了一些静态变量。
几小时或几天后或直到活动被杀死,我再次从“最近”按钮启动应用程序。活动B成为此应用程序的新入口点,但静态变量不再保留任何值,并且除非我重定向回A,否则无法初始化。
我的launchMode
这两项活动均为singleTop
。不确定这是否重要,但我已尝试singleTop
,singleInstance
和standard
这些都没有效果。我想我的预期行为将是入口点总是A或任何其他活动,如果没有被杀死,当然静态变量仍然保持价值。
谢谢!
答案 0 :(得分:0)
问题可能是因为当你的应用程序在后台运行时,android o.s必须清理内存以释放其他应用程序的资源
答案 1 :(得分:0)
static
变量具有原始数据类型。Intent
传递给ActivityB
。ActivityB
,您仍然可以获取传递的变量。将变量传递给ActivityB
而不是静态变量。
Intent intent = new Intent();
intent.putExtras("Id", 1);
intent.putExtras("Name", "kevz");
startActivity(intent, ActivityB.class);
现在在ActivityB
中获取传递的变量值 -
int Id = getIntent().getIntExtra("Id", -1); // -1 is default value.
String Name = getIntent().getStringExtra("Name", "unknown"); // unknown is default value
答案 2 :(得分:0)
如果静态变量不起作用,您可以尝试使用getter()
和setter()
方法来处理变量。