簡體   English   中英

Android Studio Activity 如果沒有完成()將不會開始

[英]Android Studio Activity wont start if dont finish()

我嘗試從 MainActivity 運行 LogIn 活動,但如果我在 startActivityForResult 之后不添加 FINISH(),則意圖不會啟動

      on MainActivity
        **pref = PreferenceManager.getDefaultSharedPreferences(this);
       Boolean mojpin = pref.getBoolean("PinLock",false);
         if(mojpin && loged==false){
      Intent i = new Intent(MainActivity.this,AppPinLock.class);
      MainActivity.this.startActivityForResult(i,1);
          finish();
       }**
   On LogIn Activity
            **String mojpin = getPassword();
            if(mojpin!= ""){
               String mojpin2 = pass.getText().toString();
                if(mojpin.equals(mojpin2)){
                    naslov.setText("Pin is ok");
                 
                  Intent i = new Intent(AppPinLock.this,MainActivity.class);
                  setResult(1, i);
                   startActivity(i); //if I dont add this wont back to MainActivity
                  finish();**

是的,你不應該在調用 startActivity(); 后關閉 MainActivity; 說明:如果在MainActivity中啟動一個Activity,方法

    @Override
    protected void onPause() {
        super.onPause();
    }

將被調用。 但是如果你調用finish(); 在調用 MainActivity 中的另一個 Activity 后,Android 立即完全終止 MainActivity,直到再次調用 MainActivity 才能返回。 示例代碼:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        startActivity(new Intent(this, Activity2.class));
        //DO NOT use finish(); here!!! (It will kill this Activity after launching Actiivty2)
    }
}

活動2

public class Activity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_2);

        finish(); //this will close this Activity and you will get back to the last Activity. (In this case MainActivity)
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM