2011-02-09 157 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

相关问题