在android中完全从应用程序注销
我有3个以上的屏幕,每个屏幕顶部都有注销按钮,当我单击注销按钮时,它应该进入登录页面,如果我单击登录页面上的后退按钮,它不应该进入应用程序并退出应用程序 在这里,我尝试了注销按钮的代码单击:在android中完全从应用程序注销,android,android-activity,logout,Android,Android Activity,Logout,我有3个以上的屏幕,每个屏幕顶部都有注销按钮,当我单击注销按钮时,它应该进入登录页面,如果我单击登录页面上的后退按钮,它不应该进入应用程序并退出应用程序 在这里,我尝试了注销按钮的代码单击: Intent in = new Intent(activity, LoginActivity.class); in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent
Intent in = new Intent(activity, LoginActivity.class);
in.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivity(in);
它在超过90%的安卓手机上工作,但在少数手机上不起作用,比如三星mini-tab。而且它不适用于较低版本的手机
有谁能指导我解决这个问题吗?禁用登录屏幕上的“后退”按钮
@Override
public void onBackPressed() {
//to nothing }
将当前活动添加到列表
listContext
,如下所述
listContext.add(Activity.this);
尝试此方法完成所有活动
public static List<Context> listContext = new ArrayList<Context>();
public static void finishActivities() {
for (Context context : listContext) {
if(context!=null)
((Activity) context).finish();
}
listContext.clear();
}
publicstaticlistcontext=newarraylist();
公共静态无效完成活动(){
for(上下文:listContext){
if(上下文!=null)
((活动)上下文).finish();
}
listContext.clear();
}
在注销按钮活动中使用此代码:
Intent setIntent = new Intent(this, LoginActivity.class);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
并在登录屏幕上使用此代码:
public void onBackPressed() {
// TODO Auto-generated method stub
Log.d("CDA", "onBackPressed Called");
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
return;
}
实际发生了什么?Intent.FLAG\u ACTIVITY\u CLEAR\u TOP就足够了。尝试删除其余的标志。我只尝试了Intent.FLAG\u ACTIVITY\u CLEAR\u TOP,但它只在少数设备上工作,不是所有的设备我认为你应该使用startActivityForResult。在登录屏幕上,如果我按下后退按钮,它应该退出应用程序,所以我不能禁用后退按钮OK,所以你在共享首选项中创建一个标志变量,并在创建时检查它是否真的重定向到登录屏幕,在注销按钮上单击设置标记为true,登录时将其设置为false,希望这会有所帮助you@Segi我还提供了禁用后退按钮的代码,这就是为什么它不是comment@Segi现在可以删除-1了