我的項目主要是一個web應用程序。現在我有一個帶有主屏幕小部件的android應用程序,並希望在內置瀏覽器中打開一些用戶操作的網頁。這很容易。在MyAppWidgetProvider.onUpdate我創建了一個新的意圖:在android瀏覽器中打開一個url,避免多個標籤
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);
不幸的是,新的瀏覽器窗口/標籤打開每次用戶點擊小工具的時間。我的頁面包含一些花哨的AJAX/JavaScript在後臺運行,並定期發送http請求。所以我最終有8個選項卡包含相同的頁面,並不斷髮送8倍數量的http請求。
有沒有什麼辦法,例如不同的動作或額外的參數,以避免打開新的標籤?
作爲一種解決方法,我現在正在考慮創建一個包含WebView的新活動,但希望避免這種複雜性。
謝謝!從API級別3(Android 1.5)開始,EXTRA_APPLICATION_ID甚至已經可用! – geekQ 2012-10-23 12:06:48
'getPackageName()'部分只適用於我的情況(平板電腦Android 4.1.1)。它確實使用相同的標籤啓動瀏覽器,但按下BACK,瀏覽器不會返回上一頁,只是完成它。通過[this](http://stackoverflow.com/questions/9902225/browser-extra-application-id-do-not-work-in-the-tablet-do-you-know-other-work-a/9917548 #9917548),它的作品! – Yeung 2014-05-20 08:50:07
完美工作。我用intent.putExtra(Browser.EXTRA_APPLICATION_ID,getApplicationContext()。getPackageName()); – zappullae 2017-01-31 14:38:51