2012-04-18 37 views
1

我需要重新启动应用程序从PreferenceActivity优先更改。我试过了:重新启动应用程序优先更改

@Override 
public void onSharedPreferenceChanged(SharedPreferences pref, String key) { 
    System.exit(2); 
} 

但是重启后设置没有保存。如何通过首选项重新启动应用程序的任何想法被保存?
在此先感谢

+3

为什么你需要重新启动应用程序? – techiServices 2012-04-18 19:44:09

+0

只有2个设置 - 更改主题和更改区域设置。我还没有找到任何解决方案,如何更改它们而无需重新启动。 – 2012-04-18 20:22:01

+1

然后,我建议您打开新的StackOverflow问题,询问如何在不重新启动应用程序的情况下“更改主题”和“更改区域设置”(无论您认为它们是什么)。 – CommonsWare 2012-04-18 21:15:11

回答

3

而不是一个System.exit(2);我会尝试

this.finish(); 

完成()是调用停止活动。

开始,你需要一个意图对象

Intent screenToBeShown = new Intent(myactivity.this, whateveractivityyouwant.class); 
startActivity(screenToBeShown); 

希望这有助于活动。

+0

是的,它的工作原理。我确定'finish()'后面的所有代码都是不可访问的。 – 2012-04-18 20:24:43

+1

噢...... :(我也要关闭所有的家长活动你知道如何关闭**所有**以前的活动吗? – 2012-04-18 20:28:17

+0

这对于一项活动很有效,但是对于一项服务怎么样? – trans 2015-03-19 18:00:44

1

如果它还是对您有用:重新启动与AlarmManager应用程序:

AlarmManager alm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); 
    alm.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, PendingIntent.getActivity(this, 0, new Intent(this, myActivity.class), 0)); 
    Process.killProcess(Process.myPid());