gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 15:24:59 25 4
gpt4 key购买 nike

我希望在我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com