2012-01-20 14 views
4

Googleのアプリは2つのアクティビティ-A MainActivity(ランチャーアイコンに関連付けられています)と​​というURIイベントを処理しています。Android:予期せぬ最近のアプリの動作

私のアプリが最初に出たと私は、このシナリオで問題を見ている:

  1. オープンブラウザ、​​を起動するURIをクリックしてください。

  2. ​​出口(呼び出し終了())、ユーザーはブラウザに戻ります。

  3. ユーザーは最近のアプリ(長押しの自宅)を持ち出し、自分のアプリを選択します。代わりに、私は​​を見ているMainActivityを開始

は、URIクリック(android.intent.action.VIEW)を表し、同じ目的で開始されています。

ステップ3の代わりに、ユーザーがホームスクリーンアイコンを使用して自分のアプリを開いた場合、私は期待通りにMainActivityに戻ります。

代わりにステップ3でMainActivityを起動するにはどうすればよいですか?ティムの提案に基づいて

+0

私は確かに知らないが、私はあなたはそれが他を指して作ることができるとは思いませんauxActivityに何らかの種類のロジックがなくても、MainActivityが起動されていたはずのことを何らかの形で判断できるようになり、ユーザーはそのアクティビティに従います。私はそれが最近使用されたアプリケーションのリストに表示されないようにするために、auxActivityを開始するときにマニフェスト属性やインテントフラグを使用できると思います。(しかし、私はそれが私の頭) – FoamyGuy

答えて

1

、どのようなマニフェストでauxActivityリストに

android:excludeFromRecents="true" 

を追加することについてはどうですか?それは役に立ちますか?

1

ないこれが機能するかどうかを確認しますが、あなたも試してみてください:

アンドロイド:noHistory =「true」を

活動が アクティビティスタックから削除する必要があるかどうか

、完成を( ユーザがそれから離れてナビゲートしてもはや画面上に表示されなくなったときに呼び出されるfinish()メソッド - 終了する必要がある場合はtrueを返し、終了しない場合はfalseを返します。デフォルト値 は "false"です。 「true」の値は、アクティビティが履歴トレースを残さないことを意味します( )。 タスクのアクティビティスタックには残らないので、ユーザーはそのタスクに戻ることができません。この属性は は3

2

がAuxActivityののonCreateでこれを入れてAPIレベルで導入されました:

if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) > 0) { 
    // do something different e.g. launch MainActivity 
} 
関連する問題