Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中使用onRestart()_Android - Fatal编程技术网

如何在android中使用onRestart()

如何在android中使用onRestart(),android,Android,我有一个有两种语言的应用程序,我让用户从中选择语言 但是当他回到第一个活动时,仍然使用默认语言 如何使用onRestart()解决此问题?希望我能正确理解您的意思,因此您需要的是重新启动活动? 代码: public static void restartActivity(Activity act) { Intent intent=new Intent(); intent.setClass(act, act.getClass()); act.

我有一个有两种语言的应用程序,我让用户从中选择语言 但是当他回到第一个活动时,仍然使用默认语言
如何使用onRestart()解决此问题?

希望我能正确理解您的意思,因此您需要的是重新启动活动?
代码:

public static void restartActivity(Activity act) {    
        Intent intent=new Intent();
        intent.setClass(act, act.getClass());
        act.startActivity(intent);
        act.finish();    
}

这是一个好问题

首先,让我们了解什么是重新启动,以及什么时候应该使用它

考虑活动生命周期: ()

我们可以看到,
onRestart
仅在活动处于
onStop
状态时调用。即,当用户看不到活动时。因此,当在活动生命周期中调用
onStart
时,要确定这是活动的首次启动还是活动刚从后堆栈重新启动,可以使用
onRestart


这可以通过在
onRestart
中设置类型为
boolean
的实例变量来实现。有了这些知识,希望您能够理解这是否是您希望为您尝试实施的解决方案提供的服务

你想让我在哪里调用这个方法?是不是在我调用另一个活动之前?你像这样传递它,重启活动(这个)//从当前活动中,我在活动结束之前编写了它并打印了一些log.v,它给了我infinte loop,我还尝试在重新启动时执行此受保护的void(){String TAG=“MyActivity”;log.v(TAG,“in restart”+TAG);restartActivity(this);}public static void restartActivity(activity act){Intent Intent=new Intent();Intent.setClass(act,act.getClass());act.startActivity(Intent);act.finish();}如果这样做:MyActivity.this