我试图在单击后退按钮后关闭首选项 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/