当用户解除Intent对话框时获取回调

时间:2015-02-16 11:31:15

标签: android android-intent

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

3 个答案:

答案 0 :(得分:2)

这样可以解决问题:

使用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);
}

希望这有帮助

答案 1 :(得分:1)

您必须像这样启动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... */
        }
    }
}

答案 2 :(得分:0)

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

只需在这些方法中暂停和恢复广告视频。