2011-02-09 156 views
0

如何從外部應用程序的活動中獲取結果,以便觸發它的應用程序可以知道更改。如何從外部應用程序的活動獲得結果?

對於e.g:

我的應用程序需要檢查用戶是否已被記錄。如果沒有登錄,它允許通過外部應用程序登錄。

因此目前的應用程序。將調用onActivityForResult()來觸發外部應用的活動,onActivityResult()將被調用處理外部應用活動的退出狀態。


已解決。

對不起,我昏昏欲睡。

我意識到我在整個測試過程中犯了錯誤。 我的理解和代碼都很好,但是每當我對 這兩個文件進行更改時,我都從未運行過外部應用程序。與更新代碼

即使我自己找到了解決方案,我正在考慮Nanne的答案作爲我對解決方案的暗示,因此被標記爲接受的答案。

非常感謝您的寶貴時間。

+1

究竟是什麼問題?它按照您剛剛描述的方式完成。你可以調用startActivityForResult()。外部應用程序的Activity完成它的工作,設置返回值,並在完成後在onActivityResult()的Activity中處理這些值。如果外部應用程序沒有提供您需要的返回值,並且您無法修改該應用程序,那麼它就是死路一條。 – 2011-02-09 11:49:36

回答

1

你,你已經開始應該設定一個結果值與setResult(intValue)

你的第一個活動活動,即所謂的代碼startActivityForResult()可以用提供的代碼檢查這個結果in the example

protected void onActivityResult(int requestCode, int resultCode, 
     Intent data) { 
    if (requestCode == PICK_CONTACT_REQUEST) { 
     if (resultCode == RESULT_OK) { 
      //do something 
     } 
    } 
} 
1

這是非常有用到u爲一個應用程序到另一個程序

btn.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     Intent res = new Intent(); 
     String mPackage = "com.ReachOut"; 
     String mClass = ".splash1"; 
     res.setComponent(new ComponentName(mPackage,mPackage+mClass)); 
     startActivity(res); 
    } 
}); 
+0

任何希望您訪問其活動的第三方都將提供穩定的Intent模式供您遵循。當第三方應用程序更新時,此處顯示的代碼可能會中斷 - 請不要使用此方法。 – CommonsWare 2011-02-09 12:54:58

相關問題