2015-12-09 53 views
1

我的問題是我有兩個activities A和B和functionacitivity B兩種活動和不同的情況下爲onResume方法

activity A,如果我點擊一個button它會調用:this.finish(),那麼我會在第二activityActivityB,並與onResume()它會執行我function B : onResume() { functionB}

我想用functionB後的事這個案例。 所以我不知道是否有可能知道(當使用onResume()時),從「你來自哪裏」:所以如果我從另一個activity得到onResume()這不是A,它永遠不會使用function B,但它將只使用B,如果我完成ActivityA

希望你明白。

謝謝

+0

只是添加一個布爾到您的意圖,這是真的來自A和否則它是假的。如果你從B調用A,那麼你應該使用onActivityResult方法。 – Rich

+0

事情是,我不使用從A到B的意圖,它們都是初始化的,然後當我用A完成我的任務時,我稱之爲。完成後,我會回到B與onResume。也許我不明白你 – Foushi

回答

1

這可以用startActivityForResult代替startActivity來完成。像這樣:

startActivityForResult(activityIntent, 100); 

然後,而不是調用this.finish(),你會打電話:

setResult(RESULT_OK); 
this.finish(); 

然後在你重新開始活動這個方法會前的onResume叫:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (resultCode == RESULT_OK && requestCode == 100) { 
     // do something 
    } 
} 

在這裏,你可以設置一些boolean變量爲真,讓Activity知道它來自你的其他Activity然後在onResume檢查,看看是否boolean設置爲true,如果它做任何你想做的事。

0

您應該使用IntentBundle來達到您的要求。

Intent intent = new Intent(this, YourActivity.class); 
Bundle extras = new Bundle(); 
extras.putBoolean(key,value); 
intent.putExtras(extras); 
startActivity(intent); // This passes the information to your activity 

使用

boolean value = getIntent().getExtras().putBoolean(key); 

使用value你能來接收您的活動信息,以瞭解其是否從onResume或從某個地方打電話。

希望有幫助

+0

這將是一個可接受的答案,用於將數據從一個「活動」傳遞到另一個。但問題是如何通過完成第二個Activity來讓一個Activity知道它是否從另一個回來。 – vguzzi

1

您必須使用SharedPreferences才能像在您的方案中那樣工作。

在您的ActivityA。在你打電話給finish()之前,按下你的按鈕做這樣的事情。

SharedPreferences sp = ActivityA.this.getSharedPreferences("prefs", MODE_PRIVATE); 
SharedPreferences.Editor preferencesEditor = sp.edit(); 
sp.putBoolean("from" , true); 
sp.commit(); 

然後在ActivityB的的onResume像這樣做。

SharedPreferences sp = ActivityB.this.getSharedPreferences("prefs", MODE_PRIVATE); 
if(sp.getBoolean("from",false)) 
{ 
// write your code here . it is from activirt A. 
} 
相關問題