Abrir una url en el navegador Android, evite varias pestañas

Mi proyecto es sobre todo una aplicación web. Ahora tengo una aplicación para Android con un widget de pantalla de inicio y me gustaría abrir una página web en el navegador integrado en algunas acciones de usuario. Eso es fácil. En MyAppWidgetProvider.onUpdate creo una nueva intención:

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); 

Desafortunadamente, una nueva ventana / pestaña del navegador se abre cada vez que el usuario hace clic en el widget. Mi página contiene algunos AJAX / javascript de lujo ejecutándose en segundo plano y enviando regularmente solicitudes http. Así que termino teniendo 8 pestañas que contienen la misma página y continuamente el envío de 8 veces la cantidad de solicitudes http.

¿Hay alguna manera, por ejemplo, acción diferente o parámetros adicionales para evitar abrir nuevas pestañas?

Como solución, ahora estoy pensando en crear una nueva actividad que contenga un WebView, pero quisiera evitar esta complejidad.

Sí, esto es posible. Utilice http://developer.android.com/reference/android/provider/Browser.html#EXTRA_APPLICATION_ID para asegurarse de que la misma ficha del explorador se reutiliza para su aplicación. Por ejemplo:

 Context context = widget.getContext(); Intent intent = new Intent(Intent.ACTION_VIEW, uri); intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()); 

A mi leal saber y entender, no hay forma de especificar si se abre una nueva pestaña o no se utiliza la Intención. Incluso hice algunos buscando y no pude encontrar de todos modos para comprobar qué pestañas estaban abiertas. Otra cosa que puede ser capaz de intentar es seguir la pista de si el usuario ha sido recientemente enviado a la actividad del navegador de su aplicación, y comprobar si el navegador sigue abierto, pero una vez más puedo ver esto va mal de muchas maneras.

Su idea de la actividad sería probablemente una de las mejores apuestas en esta situación, aunque puedo entender porqué usted desearía evitar eso.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.