android - 如何关闭 PreferenceActivity

标签 android preferenceactivity activity-finish

我试图在单击后退按钮后关闭首选项 Activity ..但是当我按下它然后单击多任务按钮时,我看到为我的应用程序打开了两个 Activity ,一个是我当前正在使用的 Activity ,另一个是 preferenceActvivty在我按下之前我已经打开了

这是我的代码

public class List extends PreferenceActivity {
 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getFragmentManager().beginTransaction().replace(android.R.id.content, new SetFrag()).commit();
}

public static class SetFrag extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings_main);
    }
}
 @Override
public void onBackPressed() {
    super.onBackPressed();
    List.this.finish ();
}

感谢您的帮助。

最佳答案

我得到了解决方案,通常我们需要在调用 super.onBackPressed() 之前编写代码。

所以把你的代码改成这个

public class List extends PreferenceActivity {
// do some stuff
@Override
public void onBackPressed() {
List.this.finish ();
}

编辑:

所以这是我的最终答案 将此自定义退出 Activity 粘贴到您的包中

public class ExitActivity extends Activity
{
@SuppressLint("NewApi")
@Override protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    if(android.os.Build.VERSION.SDK_INT >= 21)
    {
        finishAndRemoveTask();
    }
    else
    {
        finish();
    }
}

public static void exitApplication(Context context)
{
    Intent intent = new Intent(context, ExitActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
    context.startActivity(intent);
}
}

添加 list

        <activity
        android:name=".ExitActivity"
        android:autoRemoveFromRecents="true"
        android:theme="@android:style/Theme.NoDisplay" />

然后调用它

@Override
public void onBackPressed() {
ExitActivity.exitApplication(getApplicationContext());
}

祝你好运

关于android - 如何关闭 PreferenceActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40557875/

相关文章:

android - 从 DialogPreference 访问 Activity

android - 如何从 Application 对象调用 Activity 方法 finish()?

android - 将 android 应用程序与 akka 远程服务器连接

android - 如何在自定义 PreferenceActivity 中显示不确定的进度图标?

android - 有没有办法更改默认的 Android 权限消息

android - 在哪里重新创建 Activity ?

android - finish() 关闭应用程序而不是 Activity

android - 调用 finish() 不会完成 Activity

android - 如何在 android 布局中添加 3 个按钮并让每个按钮的宽度为 33.3%?

android - BrowseFragment 和 BrowseSupportFragment 类之间的区别?