0

アクティビティに小さな問題があります。


ログイン用の
MainActivity、3 つのタブを持つ DataActivity、設定を変更するための ParameterActivity の 3 つのアクティビティが
あります。

問題の手順は次のとおりです。

  1. アプリが開始され、MainActivity が読み込まれます
  2. ユーザーがログイン ボタンを押すと、DataActivity が読み込まれます
  3. ユーザーがデバイス (タブレット) の [戻る] ボタンを押すと、ParameterActivity が読み込まれます。-> しかし、ParameterActivity が正しく読み込まれていません。表示されるだけで、OnCreate の手順は実行されません。

なぜステップ3?
私のコードでは、アクティビティが読み込まれる可能性は 1 つしかありません (OnCreate の setOnClickListener で追加された MainActivity に「パラメータ」ボタンがあります)。

バックグラウンド (MainActivity で開始) には、サーバーへのデータ接続をチェックするスレッドがあります。

ログインボタンのコードです。
アプリがシミュレーションまたは通常モードで実行されているかどうかは問題ではありません。もう 1 つのコードは、正しいピン (形式と値) をチェックするためのものです。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	
    	});  

2 番目のアクティビティでは、onBack はオーバーライドされません。

4

1 に答える 1