android - 启动 Android 默认网络浏览器后处理返回点击

标签 android android-intent android-activity browser uri

我希望在我的 Android 应用程序中启动默认网络浏览器以将用户发送到验证网页,然后在验证后使用回调将他们发送回我的应用程序。

我的功能正常,但我遇到的困难是拦截用户决定他们不想在网络浏览器中验证自己并单击后退按钮返回我的应用程序的情况。

我已经尝试使用 startActivityForResult() 启动网络浏览器,这样我就可以使用 onActivityResult() 拦截返回点击,但由于某种原因,onActivityResult() 在启动网络浏览器后立即被调用,而当用户点击时根本不调用回来。

下面是演示问题的一些基本测试代码:

public class MainActivity extends Activity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        Log.i("MainActivity","onCreate called");

        Uri uri = Uri.parse("http://www.google.com");

        Intent intent = new Intent(Intent.ACTION_VIEW,uri);

        startActivityForResult(intent,101);

        Log.i("MainActivity","startActivityForResult called");
    }

    @Override
    public void onResume()
    {
        super.onResume();

        Log.i("MainActivity","onResume called");
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        Log.i("MainActivity","onActivityResult called");
    }
}

运行此代码后的输出:

I/MainActivity(545): onCreate called
I/MainActivity(545): startActivityForResult called
I/MainActivity(545): onResume called
I/MainActivity(545): onActivityResult called
I/MainActivity(545): onResume called

然后,如果用户从 Web 浏览器单击返回,它只会第三次调用 onResume()。

鉴于此,对于我如何识别用户何时从浏览器点击返回有什么建议吗?

最佳答案

试一试怎么样:

@Override
public void onWindowFocusChanged(boolean hasFocus)
{
    super.onWindowFocusChanged(hasFocus);
}

关于android - 启动 Android 默认网络浏览器后处理返回点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14223746/

相关文章:

android - 在android中检测VoLTE调用

Java.lang.RuntimeException 接收 BroadCast Intent 时出错

android - 为什么在使用onclicklistener时我的应用程序崩溃了?

java - SherlockFragment 中未定义的 getIntent() 方法

java - 如何从 Android 服务获取应用程序上下文?

android - 如何在 Android 上为 Catlog 授予 root 权限

当ListView中没有项目时Android addHeaderView消失

android - 软键盘不向上推 webview 内容也不调整大小

java - Android 中如何切换 Activity 而不杀死它们?

android - 单击 Android 通知会创建一个新 Activity ,而不是转到现有 Activity