【问题标题】:Android intent startActivityForResult doesn't return properlyAndroid 意图 startActivityForResult 未正确返回
【发布时间】:2019-11-18 00:09:05
【问题描述】:

我有 mainactivity 和 intentActivity。

  • mainActivity - 正常的主要活动
  • intentActivity - 对于 Twitter OAth 请求浏览器将由该活动启动

我如何知道意图活动是否正确?在 mainActivity 我使用了以下代码

在我使用的按钮的 Onclick 中:

startActivityForResult(i,request_code);

我还添加了以下功能

public void onActivityResult(int requestCode,int resultCode,Intent data)
{
  if(requestCode==1) 
   {
    if(resultCode==RESULT_OK)
      {
          Toast.makeToast(getBaseContext(),"Success",Toast.LENGTH_SHORT)
      {
     else
      {
          Toast.makeToast(getBaseContext(),"Failed",Toast.LENGTH_SHORT)
      }
  }
}

但令我惊讶的是,我在浏览器打开之前得到“失败”。但我希望在从浏览器返回后显示成功

【问题讨论】:

  • 你在第二个活动中调用 setResult 吗?
  • 不,我猜.. 只是我查看了联系人示例.. 当他们将意图传递给 content.Intent.ACTION_PICK 时,他们默认获取结果代码。此默认操作是否仅适用于系统意图?

标签: android android-intent twitter oauth-2.0


【解决方案1】:

您需要确保在 IntentActivity 中调用完成之前,您的调用 setResult() 并将其设置为成功。

【讨论】:

  • 谢谢库尔蒂斯。我怀疑我是否遵循了联系人示例。当他们将意图传递给 content.Intent.ACTION_PICK 时,默认情况下他们正在获取结果代码。此默认操作是否仅适用于系统意图?
  • 我不明白你的问题。
  • 实际情况是我有一个更新按钮,它调用这个 Twitter Intent 活动,它依次打开浏览器并初始化 OAth 令牌,它会自动重定向到我的 MainActivity。但在这里我希望当它重定向时我需要得到通知。
  • 正如你所说,我在 context.startActivity(new Intent(context,mainActivity.class)); 之前添加了 setResult 但是当我在 onActivityResult() 方法中返回结果时值为 0(表示 RESULT_CANCELLED)。我没有取消任何意图,它的重定向只是对吗?
猜你喜欢
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 2017-08-29
  • 1970-01-01
相关资源
最近更新 更多