android - 为什么 onActivityResult() 没有被执行?

标签 android android-intent android-activity intentfilter onactivityresult

我是一位经验丰富的 Java 程序员,正在迈出 Android 开发的第一步。我的问题很简单,我的 onActivityResult() 没有在主 Activity 中执行。这是我所做的。

MainActivityonCreate方法中,

Intent intent = new Intent(MainActivity.this, NewScreen.class);

startActivityForResult(intent,RESULT_OK);

我确实覆盖了 MainActivity 中的 onActivityResult 方法:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    Log.d("Debug", "Received");
}

NewScreen Activity 中:

Intent intent = new Intent(NewScreen.this, MainActivity.class);

this.setResult(RESULT_OK,intent);

Log.d("Debug", "Setting the Result");

finish();

我的 list 文件:

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".MainActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="NewScreen"></activity>

</application>

最佳答案

您使用了 RESULT_OK 作为请求代码。 RESULT_OK 的值为负(实际上是 -1)。这就是为什么您没有收到 NewScreen Activity 的结果。如果您查看 requestCode argument 的文档,它说:

requestCode If >= 0, this code will be returned in onActivityResult() when the activity exits.

因此,您应该定义非负请求代码并将其用于startActivityForResult。这是示例:

public class MainActivity extends Activity
{

    static final int REQUEST_CODE = 13;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
         //...             

         Intent intent = new Intent(MainActivity.this, NewScreen.class);
         startActivityForResult(intent, REQUEST_CODE);
    }
}

关于android - 为什么 onActivityResult() 没有被执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6479736/

相关文章:

java - Android Activity 仅在主 Activity 中显示并且未正确显示

Android Studio - 无法从相机捕捉视频

android - Proguard 不会混淆 gui 组件

android - 在 Activity 过渡动画期间保持 Action Bar 稳定

java - onActivityResult 无法使用 R 中的资源

android - Google IAB V3 多设备缓存

java - Android,通过我的应用程序打开 url

Android - SaxParser 错误 : ParseException: At line 1, 第 0 列:格式不正确(无效 token )

android - startIntentSenderForResult 已弃用 Android

android - 触摸特定图像时放大更近的图片