0

クリックすると小さなダイアログをポップアップできるウィジェットがあります。これらのダイアログは、singleInstance launchMode の RemoteActivity と呼ばれるアクティビティによって表示されます。これらのダイアログの 1 つに、メイン アプリ MainActivity を起動するためのボタンがあり、これには標準の launchMode があります。

ただし、このボタンをクリックして startActivity() を呼び出すと、MainActivity は起動されませんが、logcat で対応する「Starting activity: Intent { ... }」を確認できます。

RemoteActivity の launchMode を標準に設定すると、MainActivity が起動されますが、これは私が望むものではありません。RemoteActivity は単なるウィジェットの拡張であり、他のアクティビティとスタックさせたくありません。

FLAG_ACTIVITY_NEW_TASK も試しましたが、役に立ちませんでした。ドキュメントによると、とにかく必要ではないはずです:

一方、「singleInstance」アクティビティでは、他のアクティビティをそのタスクの一部にすることはできません。タスク内の唯一のアクティビティです。別のアクティビティを開始すると、そのアクティビティは別のタスクに割り当てられます — FLAG_ACTIVITY_NEW_TASK がインテント内にあるかのように。

メイン アクティビティを開始するにはどうすればよいですか?

更新/エラッタ:

MainActivity は実際に起動されますが、まだタスクの一部になっていない場合のみです。ランチャーから MainActivity を通常どおり起動し、[戻る] を押して終了すると、RemoteActivity が MainActivity を起動します。

しかし、Back を押す代わりに Home を押して MainActivity を終了すると、logcat にはインテントが表示されますが、RemoteActivity は MainActivity を起動できません。

Froyoでこれをテストしています。

何が起こっているのか分かりますか?

4

2 に答える 2

0

問題が見つかりました。この動作は、RemoteActivity で startActivity() の前に finish() を呼び出した場合にのみ発生します。startActivity() を finish() の前に呼び出すと、MainActivity が既に既存のタスクの一部であるかどうかに関係なく正常に動作します。

図に行く...

于 2011-04-27T14:14:15.043 に答える
0

たぶん、あなたが探しているものに対してnoHistory フラグが機能するでしょうか?

于 2011-04-27T13:37:20.037 に答える