从主活动重新启动android应用程序
我的Android应用程序包括几个活动:M main或root、A、B、C。。。 下面是一个可能的活动导航图: 初始化根活动M时,我将一些参数(如屏幕尺寸)缓存为特殊类MyUtils中的静态变量,以便稍后在其他活动中使用 当我按下活动(比如C)中的Home按钮,然后启动十几个应用程序时,就会出现Kaboom。当我返回到我的应用程序时,似乎所有的东西都被破坏了。正在调用C.onCreate方法,但缓存的参数似乎已重置 我想从M开始,而不是从C开始,因为Android在长时间的停顿后破坏了我的应用程序。我怎样才能做到这一点 我想到了这样的事情:从主活动重新启动android应用程序,android,android-activity,Android,Android Activity,我的Android应用程序包括几个活动:M main或root、A、B、C。。。 下面是一个可能的活动导航图: 初始化根活动M时,我将一些参数(如屏幕尺寸)缓存为特殊类MyUtils中的静态变量,以便稍后在其他活动中使用 当我按下活动(比如C)中的Home按钮,然后启动十几个应用程序时,就会出现Kaboom。当我返回到我的应用程序时,似乎所有的东西都被破坏了。正在调用C.onCreate方法,但缓存的参数似乎已重置 我想从M开始,而不是从C开始,因为Android在长时间的停顿后破坏了我的应用程
// to be put into all my activities but M:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (MyUtils.GetScreenWidth() == -1)
{
// seems like Android killed my app
finish();
return;
}
// Normal initialization.
// Use MyUtils.GetScreenWidth() to align my ui elements.
}
…但我不确定这是不是最好的方法。你有什么建议?老实说,我会做和你一样或类似的事情。一个可能更好的方法是使用静态MyUtils.initialize方法,可能会引入一个应用程序上下文参数,该参数在使用MyUtils的每个活动的每次创建时调用
要么这样做,要么将每个值存储在SharedReference中。老实说,我会做与您所做的相同或类似的事情。一个可能更好的方法是使用静态MyUtils.initialize方法,可能会引入一个应用程序上下文参数,该参数在使用MyUtils的每个活动的每次创建时调用
或者,或者将每个值存储在SharedReference中。这不是一个真正聪明的方法,但您可以将这些信息存储在其他地方,如数据库或简单的文件,然后在需要时检索。这不是一个真正聪明的方法,但您可以将这些信息存储在其他地方,如数据库或简单的文件,然后检索它需要时。您可能不想这样做,除非您要求用户与前门活动交互,例如,再次验证用户
如果您确实想强迫他们通过前门活动返回,那么当您检测到您已在一个新流程中启动了其他活动时,您可以使用意图来启动它。您可能需要花一些时间阅读有关意向标志的文档,以选择适用于此用途的标志。除非您要求用户与前门活动交互,例如再次验证用户身份,否则您可能不希望以这种方式进行操作
如果您确实想强迫他们通过前门活动返回,那么当您检测到您已在一个新流程中启动了其他活动时,您可以使用意图来启动它。您可能需要花一些时间阅读意向标志的文档,以选择适用于此用途的标志。大约一年前,我遇到了类似的问题,将值存储在SharedReference中解决了问题。大约一年前,我遇到了类似的问题,将值存储在SharedReference中解决了问题问题