Android 当我们在HTC或phone上单击后退按钮时,它不会';不要进入登录屏幕

Android 当我们在HTC或phone上单击后退按钮时,它不会';不要进入登录屏幕,android,Android,我的应用程序屏幕类似于(仅限首次安装时间)许可证屏幕1->(仅限首次安装时间)数据库设置屏幕2->启动屏幕3-->登录屏幕4-->同步屏幕-->主屏幕5 当我从手机上点击后退按钮时,我不会进入上一个屏幕 换句话说,, 我一共有25个屏幕。屏幕1到屏幕5基本设置屏幕。屏幕5是主屏幕。 我现在在主屏幕,我点击了后退按钮从电话键,我不会去登录屏幕4或启动屏幕3或2或1 但是如果我在第10屏按下了后退键,那么此时它可以进入第5屏。无法进入第一屏幕4或屏幕3或屏幕2或屏幕1 (主屏幕我正在使用Activi

我的应用程序屏幕类似于(仅限首次安装时间)许可证屏幕1->(仅限首次安装时间)数据库设置屏幕2->启动屏幕3-->登录屏幕4-->同步屏幕-->主屏幕5

当我从手机上点击后退按钮时,我不会进入上一个屏幕

换句话说,, 我一共有25个屏幕。屏幕1到屏幕5基本设置屏幕。屏幕5是主屏幕。 我现在在主屏幕,我点击了后退按钮从电话键,我不会去登录屏幕4或启动屏幕3或2或1

但是如果我在第10屏按下了后退键,那么此时它可以进入第5屏。无法进入第一屏幕4或屏幕3或屏幕2或屏幕1

(主屏幕我正在使用ActivityGroup的选项卡。在那里我使用了
标记\u活动\u清除\u顶部

请帮帮我


提前感谢….

在开始后只需在每4个初始屏幕(活动)中调用finish(完成)

删除标志
标志\u活动\u CLEAR\u TOP
,因为这是导致问题的原因。。该标志的作用是,一旦您开始新的活动,它将关闭以前的活动…

如果您当前处于第5屏,当用户按下第1屏时::

放置
finish()方法在2md、第三、第四屏幕中显示

当您从当前活动启动新活动时,不要完成当前活动并启动新活动,以便前一个活动将推到后堆栈上

在主屏幕中,您使用的是活动组,因此有一个选项卡活动管理所有选项卡,因此您必须覆盖
onBackpressed()
,并且您必须完成主活动,以便最后一个活动出现在前面

在活动组中,您必须以这种方式实现

public class FirstGroup extends ActivityGroup {  

            // Keep this in a static variable to make it accessible for all the nested activities, lets them manipulate the view  
        public static FirstGroup group;  

            // Need to keep track of the history if you want the back-button to work properly, don't use this if your activities requires a lot of memory.  
       private ArrayList<View> history;  

        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
              super.onCreate(savedInstanceState);  
              this.history = new ArrayList<View>();  
              group = this;  

                  // Start the root activity withing the group and get its view  
              View view = getLocalActivityManager().startActivity("Home", new  
                                                Intent(this,Homepage.class)  
                                                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
                                                .getDecorView();  

                  // Replace the view of this ActivityGroup  
              replaceView(view);  

           }  

        public void replaceView(View v) {  
                    // Adds the old one to history  
            history.add(v);  
                    // Changes this Groups View to the new View.  
            setContentView(v);  

        }  

        public void back() {  
            if(history.size() > 0) {  
                history.remove(history.size()-1);  
                if(history.size() > 0) {
                     setContentView(history.get(history.size()-1));  
                }
                else {  
                    finish();  
                } 
            }else {  
                finish();  
            }  
        }  

       @Override  
        public void onBackPressed() {  
            FirstGroup.group.back();  
            return;  
        }  

    }  
公共类FirstGroup扩展ActivityGroup{
//将其保存在一个静态变量中,以使所有嵌套活动都可以访问它,并允许它们操纵视图
公共静态第一组;
//如果希望“后退”按钮正常工作,则需要跟踪历史记录。如果您的活动需要大量内存,请不要使用此按钮。
私家侦探史;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
this.history=new ArrayList();
组=此;
//使用组启动根活动并获取其视图
View=getLocalActivityManager().startActivity(“主页”,新建)
意图(此,Homepage.class)
.addFlags(意图.标志\活动\清除\顶部))
.getDecorView();
//替换此ActivityGroup的视图
替换视图(视图);
}  
公共视图(视图v){
//将旧的添加到历史记录中
历史。添加(v);
//将此组视图更改为新视图。
setContentView(v);
}  
public void back(){
如果(history.size()>0){
history.remove(history.size()-1);
if(history.size()>0){
setContentView(history.get(history.size()-1));
}
否则{
完成();
} 
}否则{
完成();
}  
}  
@凌驾
public void onBackPressed(){
FirstGroup.group.back();
返回;
}  
}  
这里有一个
back()
方法,用于导航,当历史记录中没有活动时,它将完成()活动组

  public boolean onKeyDown(int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK) {
          moveTaskToBack(false); return true; 
      } 
      return super.onKeyDown(keyCode, event); 
   }

这是我能做的…我喜欢这样做

你能澄清你的问题吗?我现在在主屏幕上(这意味着我已经从屏幕1来到屏幕5)。我点击了电话键上的后退按钮,我不会进入登录屏幕或启动屏幕。。。我该怎么做……那么你的应用程序将去哪里?任何特定的屏幕或只是完成应用程序?
public boolean onKeyDown(int-keyCode,KeyEvent-event事件){if(keyCode==KeyEvent.keyCode\u BACK){moveTaskToBack(false);return true;}return super.onKeyDown(keyCode,event);}
我这样做是为了让他退出应用程序。因为据我所知,他所做的任何活动都不可用