[英]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.