2012-02-10 11 views
1

私はHTML5 webappを起動するためのとても簡単なAndroidネイティブアプリを開発しました。ここで はメインクラスである:私は私のホームスクリーンからそのアイコンをタップすると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ではありません。しかし、その場合には、私は私のアプリは、したがって消費し、新しいブラウザウィンドウが毎回作成されます怖いです - どちらか私は、このようなONSTART、onRestoreなど他のすべての方法、でstartActivityコールを複製)
1:

私は2つのソリューションを見ることができます多くのメモリが不必要に
2)または各タップ後に、タップするたびにonCreateメソッドが呼び出されるようにランチャーアプリを強制的に残しておきますが、この場合、アプリを "強制終了"してもブラウザはまだ開かれているので、ランチャーアイコンをタップすると、新しいブラウザウィンドウが作成されます。

私は自分の問題と私が考えた解決策理想的です。

私の問題を解決する方法を教えてください。

おかげで、
ダン

+0

があなたの意図を発射した後、あなたがフィニッシュ()を呼び出してみました持っているのWebViewを作成する目的は、あなたのアプリケーション入る毎回呼び出されることを保証するために、onResume()にコードを移動しています? –

+0

私はonPauseメソッドでfinish()を呼び出すでしょうが、別のウィンドウを開くことができるかどうかはわかりません。別のアプリケーションからウィンドウを閉じることができるかどうかは分かりません。おそらく、ウィンドウが既にあるかどうかをチェックする方法があります開いているかしていないか onPauseメソッドで呼び出しを終了すると、黒い画面が停止しますが、まだウィンドウにはわかりません – FabianCook

+0

@Espiandevまだありません。しかし、それはとにかく行く方法ですか?私のアプリを殺しても、ブラウザはまだ "生きている"でしょう。だから、ランチャーアイコンをもう一度タップすると、すでに同じウィンドウが開いているにもかかわらず、新しいブラウザウィンドウが作成されます。 – dan

答えて

1

onResume()メソッドは、常に(のonCreate後に呼び出されます)。

アクティビティを終了してもシステムによって強制終了されない場合は、再び「作成されない」可能性があります。これは一時停止状態のままです。あなたは何をすべき

+0

私のアプリケーションに入るたびに新しいブラウザウィンドウが作成されますか? – dan

+0

私は思いません。しかし、発生する問題は、あなたがブラウザ上にいるときに戻るキーをタッチすると何が起こるかを処理しなければならないということです。インテントがonResume()メソッドにある場合は、それが作成されます。そのためには、startActivityForResultを呼び出して、onActivityResultメソッドをオーバーライドする必要があります。 – MobileCushion

+0

私の意図を発射するとき、どんな結果が期待できますか? – dan

関連する問題