2011-12-29 14 views
5

私はAndroid 1.6以上で作ったプログラムを持っています。新しいアイスクリームサンドイッチ(Android 4)でプログラムがうまく動作するようにテストしています。アイスクリームサンドイッチでブラウザを起動

アプリでは、ユーザーが特定のタスクを実行したときにアンドロイドブラウザを自動的に起動するはずです。しかし、何らかの理由でバックグラウンドでロードしているように見えて、私のアプリが表示されたままになります。

ブラウザを起動するためのコードを実行すると、ブラウザが画面の一番上に表示されるため、アプリがバックグラウンドになることができます。以下は

は、私は、ブラウザを起動する必要があり、コード

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.addCategory(Intent.CATEGORY_BROWSABLE); 
intent.setData(Uri.parse(companyURL)); 
startActivity(intent); 

companyURLは、私がブラウザにURLを解析するために使用しています変数です。です

ご協力いただきありがとうございます。

UPDATE 私はちょうど、ブラウザが現在実行されていない場合、私のアプリは、それが前にそれをもたらし、ブラウザを起動したとき(すなわち、以前にロードされていない)ことを発見しました。しかし、いったんブラウザが以前に読み込まれると、私のアプリケーションが再び読み込まれると、それはバックグラウンドで読み込まれます。

+0

ここに表示されているものよりもさらに何かがあるはずです。プラットフォームや標準アプリケーションのすべての種類のものは、ACTION_VIEWとURI(EメールまたはGmailアプリケーションのリンクをクリックするなど)を使用してブラウザを起動し、これらはうまく動作します。 – hackbod

答えて

0

FLAG_ACTIVITY_BROUGHT_TO_FRONTフラグをインテントに追加してください。

+0

ご協力いただきありがとうございます。私はそれを開始する前にそれを意図に追加しようとしましたが、何の違いもありません。 – Boardy

1

これは私にとってICSで動作しています。

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(companyURL)); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
+0

ご協力ありがとうございます。これは、ブラウザが初めて表示されるのと同じことをしています。しかし、ブラウザがバックグラウンドでページを開くのは2回目です。唯一の違いは、ランチャーメニューに再び移動する前で、ホーム画面に戻ります。 – Boardy

+0

このフラグを追加してみてください。 'FLAG_ACTIVITY_CLEAR_TOP' – Sunny

+0

同じことをやっています。なぜ私はICSでこの問題を抱えているだけで、他のバージョン – Boardy

1

通常、CATEGORY_BROWSABLEカテゴリは必要ありません。代わりに、次の試してみてください。実際には

Intent intent = new Intent(); 
intent.setAction(Intent.ACTION_VIEW); 
intent.setData(Uri.parse(companyURL)); 
startActivity(intent); 

を、ドキュメントがCATEGORY_BROWSABLEが反対方向(あなたのアプリへのブラウザ)で使用されることを意図している示唆しているようだ:安全から呼び出すことができ

活動ブラウザがこのカテゴリをサポートしている必要があります。たとえば、ユーザーがWebページまたは電子メールを表示してテキスト内のリンクをクリックした場合、インテントはそのリンクを実行してBROWSABLEカテゴリを実行し、このカテゴリをサポートするアクティビティのみが可能なアクションと見なされるようにします。

http://developer.android.com/reference/android/content/Intent.html#CATEGORY_BROWSABLE

0

私は、ブラウザがすでにバックグラウンドで実行されている場合でも、私と一緒に次のコードとその作業罰金を使用しています。

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); 
startActivity(intent); 
関連する問題