在android浏览器中打开一个url,避免多个标签

gee*_*ekQ 16 android

我的项目主要是一个Web应用程序.现在我有一个带有主屏幕小部件的Android应用程序,并希望在内置浏览器中打开某些用户操作的网页.这很容易.在MyAppWidgetProvider.onUpdate中,我创建了一个新的intent:

Intent intent = new Intent("android.intent.action.VIEW", 
    Uri.parse("http://my.example.com/"));
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
views.setOnClickPendingIntent(R.id.text, pendingIntent);
Run Code Online (Sandbox Code Playgroud)

不幸的是,每次用户点击小部件时都会打开一个新的浏览器窗口/标签.我的页面包含一些在后台运行的花哨的AJAX/javascript并定期发送http请求.所以我最终得到8个包含相同页面的标签,并不断发送8倍数量的http请求.

是否有任何方法,例如不同的操作或其他参数,以避免打开新标签?

作为一种解决方法,我现在正在考虑创建一个包含WebView的新活动,但希望避免这种复杂性.

Car*_*lan 22

是的,这是可能的.使用http://developer.android.com/reference/android/provider/Browser.html#EXTRA_APPLICATION_ID确保为您的应用程序重用相同的浏览器选项卡.例如:

Context context = widget.getContext();
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName());
Run Code Online (Sandbox Code Playgroud)