2011-08-10 19 views

回答

0

你可以使用onRestart事件嗎?

+0

不,這是不可能的。 – Patrick

1

一個可能的想法是反過程,即確定活動是否由您的應用程序啓動。

可以說你有一個活動A,你想在onResume()中找出你是否從你的另一個活動回來。您應該能夠使用startActivityWithResult()啓動從A傳出的所有其他活動,並在onActivityResult()中檢查結果。由於在onResume()之前調用onActivityResult(),因此可以設置要在onResume()中檢查的布爾型字段。

所以,代碼:

private static final int RANDOM_ACTION_CODE= 42; 

private Button fButton; 

private boolean returning= false; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    fButton= (Button) findViewById(R.id.button1); 
    fButton.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) { 
    Intent i= new Intent(this, SecondActivity.class); 
    startActivityForResult(i, RANDOM_ACTION_CODE); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    Toast.makeText(this, "returning = " + returning, Toast.LENGTH_LONG).show(); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == RANDOM_ACTION_CODE) 
     returning= true; 
    else 
     returning= false; 
} 
+0

好主意,但它不工作。 – Patrick

+0

更新了我的答案 - 應該像這樣工作。 – Tom

相關問題