1

アクティビティ スタックと、それがアプリに与える影響の動作を理解するのに問題があります。

ボタンをクリックすると、ブラウザを開くインテントが開始されます。ブラウザでホームボタンを押すと、ホームスクリーンに着陸します。ランチャーを介してアプリを再度起動すると、アプリではなくブラウザーが開きます。アプリの起動時にブラウザを開かないようにするにはどうすればよいですか?

現在、URL を開くコードは次のようになります。

private void openUrlExternal(String url) {
    Intent openUrlIntent = new Intent(Intent.ACTION_VIEW);
    openUrlIntent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
    openUrlIntent.setData(Uri.parse(url));
    startActivity(openUrlIntent);
}

間違ったフラグを使用していますか? もしそうなら、どのフラグを使用する必要がありますか?

前もって感謝します!

4

2 に答える 2

5

このようにしてみてください:

openUrlIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
openUrlIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

これにより、ブラウザ タスクと自分のタスクの関連付けが解除されます。つまり、自分のタスクを再起動すると、ブラウザではなくアクティビティに移動する必要があります。

ただし、openUrlExternal() を呼び出す場所によっても異なります。アクティビティの起動時にこれを呼び出すと、ブラウザーに戻りますが、イベント リスナー (つまり、ボタン クリック) からこれを呼び出すと、アプリを再起動したときに呼び出されません。

于 2012-08-06T16:30:33.683 に答える