Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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
Java Finish()未在PreferenceActivity中执行任何操作_Java_Android_Sharedpreferences_Restart_Preferenceactivity - Fatal编程技术网

Java Finish()未在PreferenceActivity中执行任何操作

Java Finish()未在PreferenceActivity中执行任何操作,java,android,sharedpreferences,restart,preferenceactivity,Java,Android,Sharedpreferences,Restart,Preferenceactivity,要清除问题,我需要重新启动SettingsActivity.class。除了finish()之外,其他一切都正常,它似乎根本不起作用。我的代码创建了一个新的SettingsActivity.class,但不会破坏旧的SettingsActivity.class private SharedPreferences.OnSharedPreferenceChangeListener listener1 = new SharedPreferences.OnSharedPreferenceChangeLi

要清除问题,我需要重新启动SettingsActivity.class。除了finish()之外,其他一切都正常,它似乎根本不起作用。我的代码创建了一个新的SettingsActivity.class,但不会破坏旧的SettingsActivity.class

private SharedPreferences.OnSharedPreferenceChangeListener listener1 = new SharedPreferences.OnSharedPreferenceChangeListener() {
    public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
        if (key.equals("tema1")) {
            finish();
            startActivity(getIntent());
        }
        if (key.equals("tema2")) {
            finish();
            startActivity(getIntent());
        }
        if (key.equals("notification")) {
            recreate();
        }
因此,问题是finish()不起作用。它根本不会破坏活动。正如我所说的,其他一切都起作用

编辑
Finish()仍然不起作用,我想得到一个答案,但我设法通过使用intentflag“clear top”来解决startActivity意图。实现了我想要的效果,甚至不使用finish()。

您可以重新创建意图,而不是使用相同的旧意图,因此请尝试
startActivity(YourActivityName.this,YourActivityName.class)
并调用
finish()
after@PavneetSingh出现错误“活动中的startActivity不能应用于SettingsActivity”。请将完整错误添加到end@PavneetSingh这是完全的错误。(Activity.this,Activity.class)带红色下划线,鼠标悬停时会显示我写的内容。@PavneetSingh那么“OnSharesReferenceChanged”就永远不用了?你能给出一个正常的答案,包括你的意思吗?