2011-03-01 67 views
2

如何在活動中監聽其他活動中觸發的事件?在Android中監聽活動

更具體地說,我創建了一個活動菜單,用於連接到Facebook並獲取用戶的朋友(只要用戶登錄,朋友列表就會自動並異步請求,並在onComplete事件上填充全局ArrayList )。假設用戶在請求完成之前離開菜單,然後轉到另一個顯示朋友列表的活動。爲了填寫清單,我需要知道getfriends請求是否完成,並且ArrayList已填充。如果不是,我需要知道什麼時候開始填寫我的朋友名單。我不確定是否在離開活動時異步請求被終止,如果不是,我怎麼知道它已完成。

可以實現嗎?

謝謝

回答

3

已過時:

在的Android for活性間通信的基礎是Intents,其中,基本上,是基於事件的(a)中的同步通信。我認爲你所指的事件可能是發生的任何事情。

您應該只需定義一個特定於應用程序的應用程序Intent,並在Facebook API完成其請求後使用listview查看該應用程序。

編輯:

...和,好吧,你是在稍微不同。活動可以也將會被殺死:這應該會導致異步請求掛起(但我沒有看過FB API,所以我只是猜測)。我認爲您所描述的要求您的應用程序中的Service的Facebook請求。然後,您應該只能使用基本的Observable/Observer s:聲明FriendObservable(最簡單的實現:全局對象或單例),任何顯示好友的活動都可以向其中註冊。我認爲您應該將這種FriendService的生命週期限制爲Facebook API交互,以儘量減少資源消耗。

+0

據我瞭解,你的意思是,我可以在我的getfriends的的onComplete事件中使用的意圖和startactivity在我的Facebook活動要求開始與朋友列表的活動。這不是我想要的。我再次編輯我的問題,使其更清晰。 – jul 2011-03-01 10:58:30

2

我希望它可以幫助你

intentApplication = new Intent(Applic.this, com.rActivity.class); 
startActivityForResult(intentApplication, SCANNER_REQUEST_CODE); 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (resultCode == Activity.RESULT_OK && requestCode == SCANNER_REQUEST_CODE) { 
      Bundle extras = data.getExtras();  
      String result = extras.getString("SCAN_RESULT");  
      //Toast.makeText(getBaseContext(), result, Toast.LENGTH_LONG).show(); 

    } 
}