0

私のアプリケーションでは、次のマニフェストエントリを使用して、ランチャーから起動できる2番目のアクティビティを指定しました。

    <activity 
        android:name=".Lists.ListOfListsActivity"
        android:icon="@drawable/ic_launcher_lists" 
        android:launchMode="singleTop"
        android:label="@string/lists_activity_name" >
        <!--  An Intent filter so that the Lists activity shows in the Launcher -->
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

「メイン」アクティビティでアプリを開いてから、ホームキーを押したとします。私のアプリは引き続き実行されますが、バックグラウンドで実行されます。

その後、ユーザーはホーム画面から「ListsOfListsActivity」用のランチャーアイコンを選択します。

これにより、アプリケーションがフォアグラウンドになりますが、「ListOfListsActivity」ではなく、バックグラウンドに移動したときの現在のアクティビティ(「メイン」アクティビティなど)になります。

ユーザーが「ListOfListsActivity」を選択したが、別のリストが表示されるため、これは混乱を招きます。次に、そこに移動する必要があります。

「ListOfListsActivity」にlaunchMode="singleTask"を指定することで、これをより適切に機能させることができましたが、そのモードでは、結果の別のアクティビティ(startActivityForResult())から起動することはできず、選択するにはそれを実行できる必要がありますリスト...

質問:-アプリケーションの現在のステータスとその現在のアクティビティに関係なく、アクティビティをフォアグラウンドに強制して選択されたアクティビティにするインテントフィルターを指定するにはどうすればよいですか?

4

1 に答える 1

0

私の最終的な実装は、ランチャーから独立して起動したいアクティビティごとに異なるtaskAfinity文字列を定義することでした。

このように、各「ショートカット」は常に必要なアクティビティを起動しますが、回避できなかった欠点は、ユーザーがアプリケーションのアクティビティを含む複数のタスクを持っている可能性があり、同じアクティビティが開いている/アクティブである可能性があることですさまざまなタスクで...

于 2011-07-14T10:36:57.210 に答える