2012-02-10 40 views
1

我開發了一個非常簡單的Android本機應用程序來啓動我的HTML5 web應用程序。 這裏是主類:Android - 更好的網站啓動器本機應用程序

package com.plancake.android.app; 

import android.app.Activity; 
import android.content.Intent; 
import android.net.Uri; 
import android.os.Bundle; 

public class PlancakeActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     // setContentView(R.layout.main); 

     Intent viewIntent = new Intent("android.intent.action.VIEW", Uri.parse("https://www.mywebsite.com")); 
     startActivity(viewIntent); 
    } 
} 

當我點擊從我的主屏幕圖標第一次,一切工作正常:Android的打開了瀏覽器和Web應用我的加載。可愛!

的問題,當我離開的網頁瀏覽器,我再次從主屏幕或任務管理器我的啓動器圖標點擊出現。在那種情況下,我只能看到黑屏。

我認爲問題是,Android的調用的onResume方法(或別的東西),反正不是的onCreate在後一種情況下。

我可以看到兩個解決方案:
1)無論是我複製在所有其他方法,如在onStart,OnRestore中的startActivity電話 - 但在這種情況下,恐怕我的應用程序將創建一個新的瀏覽器窗口,每次,因此消費很多的內存不必要
2)或每個抽頭後,迫使我的桌面應用留下的記憶,這樣的onCreate方法被調用每次我點擊 - 但在這種情況下,即使我「殺」我的應用程序,瀏覽器會可仍然打開,以便下一次我在我的啓動器圖標,點擊一個新的瀏覽器窗口將被創建反正

我希望我是在描述我的問題,我想的解決方案很清楚 - 這他們的任重新理想。

請,我想知道你會建議如何解決我的問題。

感謝,

+0

你試圖調用完成()你解僱你的意圖後, ? – 2012-02-10 12:48:21

+0

我會在onPause方法中調用finish(),但我不知道你可以做些什麼來打開另一個窗口,我甚至不知道你是否可以關閉另一個應用程序的窗口,也許有一種方法來檢查窗口是否已經存在被打開或不 中的onPause方法調用完成將停止黑屏,但林仍然沒有窗戶 – FabianCook 2012-02-10 12:49:19

+0

@Espiandev上肯定還沒有。但是,無論如何,要走的路呢?即使我殺了我的應用程序,瀏覽器仍然「活着」。所以當我再次點擊啓動器圖標時,儘管已經打開了相同的窗口,但是會創建一個新的瀏覽器窗口,對嗎? – dan 2012-02-10 12:50:23

回答

1

的的onResume()方法的onCreate後,總是叫()。

如果你離開你的活動,它不是由系統終止,那麼它可能不會被「創造」了起來。它處於暫停狀態。

你應該做的是你的代碼移動到的onResume(),以確保意圖創造的WebView是叫你輸入你的應用程序,每一次

+0

這是否意味着每次進入我的應用程序時,都會創建一個新的瀏覽器窗口? – dan 2012-02-10 12:53:54

+0

我不這麼認爲。但是,會出現的問題是,您必須處理當您在瀏覽器上時觸摸後退鍵時發生的情況。如果意圖在onResume()方法中,它將被創建。爲此,您應該調用startActivityForResult並覆蓋onActivityResult方法 – MobileCushion 2012-02-10 12:59:47

+0

我明白了。我能達成什麼樣的結果? – dan 2012-02-10 13:04:33

相關問題