当用户关闭 Intent 对话框时获得回调

Get a callback when user dismisses an Intent dialog

我有一个显示广告的视频播放器。当我点击视频播放器时,我会触发一个打开 URL 的 Intent。但是,如果有许多应用程序可以处理该 Intent,则会显示一个对话框。是否有可靠的方法知道用户是否关闭了该对话框以便我可以恢复广告?

您必须像这样启动 Intent

startActivity(intent);

您需要这样启动它:

static final int OPEN_AD = 1234;
startActivityForResult(intent, OPEN_AD);

并赶上

中的解雇
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == OPEN_AD) {

        /* If user dismisses diaog */
        if (resultCode =! RESULT_OK) {

            /* display ad again etc... */
        }
    }
}

这样做就可以了:

使用 startActivityForResult 触发意图,像这样

private static final Integer OPEN_BROWSER_REQUEST_CODE = 100;

[...]

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivityForResult(browserIntent, OPEN_BROWSER_REQUEST_CODE);

然后通过覆盖 onActivityResult 来捕获结果,就像这样

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == OPEN_BROWSER_REQUEST_CODE) {
        switch (resultCode) {
            case RESULT_OK:
                break;
            case RESULT_CANCELED:
                break;
        }
    }
    super.onActivityResult(requestCode, resultCode, data);
}

希望对您有所帮助

打开选择器对话框将调用 Activity 的 onPause() 方法。关闭它将调用 onResume() 方法。

只需使用这些方法暂停和恢复您的广告视频。