如果按下onBack,则会打开新活动

时间:2014-11-03 13:08:24

标签: android android-activity onbackpressed

我的活动有一个小问题。

有3项活动:
登录的MainActivity,
DataActivity是一个包含3个选项卡的活动,
ParameterActivity是一项更改设置的活动。

以下是解决问题的步骤:

  1. 启动应用程序并加载MainActivity
  2. 用户按下登录按钮并加载了DataActivity
  3. 用户按下设备(平板电脑)上的“后退”按钮并加载ParameterActivity。 - >但是没有正确加载ParameterActivity。仅显示,未执行OnCreate中的步骤。
  4. 为什么选择第3步? 在我的代码中,只有一种可能性是加载活动(MainActivity中有一个“参数”按钮,在OnCreate中添加了setOnClickListener)。

    在后台(在MainActivity中启动)中,有一个线程可以检查与服务器的数据连接。

    这是“登录”按钮的代码。
    如果App在模拟或正常模式下运行无关紧要。另一个代码用于检查正确的引脚(格式和值)。 PasswordTimeOut(),WrongPasswordMessage(),PasswordFalschesFormat()是显示消息的函数。

    bLogin.setOnClickListener(new View.OnClickListener() {	
            	//On Click Methode
        		@Override
        		public void onClick(View v) {								
        			// Checkbox fürs Passwort gesetz			
        			if (chkPW.isChecked()) {
        				ZGlobals.setting.setPin(txtPin.getText().toString());
        			}
        			else { // sonst Pin zurücksetzen
        				ZGlobals.setting.setPin("");
        			}
        			SaveSettings();
        			
        			// Wenn Simulationsmodus, dann direkt Hauptmaske, wenn PIN 1234 richtig
        			if (ZGlobals.setting.getSimulation()) {
        				if	(txtPin.getText().toString().length() == 4 && isNumeric(txtPin.getText().toString())){
        					if (Integer.parseInt(txtPin.getText().toString()) == 1234) {
        						bLayoutThread = false;
    							Intent i = new Intent(getApplicationContext(), HomescreenActivity.class);
    							startActivity(i);
        					} else {
        						WrongPasswordMesage();
        					}
        				}
        				else {
        					PasswordFalschesFormat();
        				}
        			} else {
         				Runnable ReadData = new Runnable() {
            				@Override
            				public void run () {
            					int iCount = 0;
            					
            					ZGlobals.gui.ResetPasswordMessage();
            					while (!ZGlobals.gui.GetMessagePasswordReceived()) { 						
            						iCount++;
            						if (iCount == 100) {
            							break;
            						}
            	        		
            						SystemClock.sleep(20);
            					} 
            					
            					
            					if (iCount < 100) {
            						if (ZGlobals.gui.GetMessagePasswordReceived()) {
            							if (ZGlobals.gui.getMessagePassword().getPasswordCorrect()) {
            								RightPasswordMessage();
            								bLayoutThread = false;
            								Intent i = new Intent(getApplicationContext(), HomescreenActivity.class);
            								startActivity(i);
            							}
            							else {
            								WrongPasswordMesage();
            							}
            						}
            					} // end if	
            					else {
            						PasswordTimeOut ();
            					}
            				}
            			};
            			
            			if (checkPin(txtPin.getText().toString())) {
            				Thread t = new Thread(ReadData);
            				t.start();
            			} 
        			}		
        		} // onClick	
        	});  

    在第二项活动中,onBack未被覆盖。

1 个答案:

答案 0 :(得分:0)

我发现了这个错误。 overRided方法onResume是在设置其他布局的类中实现的。

我没有实现它,它是我的队友而且他是在你的。不知道他为什么要实施它......

很抱歉提出这么愚蠢的问题......