単一関数アクティビティからアクティビティを開始する方法は?
-
24-10-2019 - |
質問
クリックすると小さなダイアログをポップアップできるウィジェットがあります。これらのダイアログは、シングルインスタンス起動モードでのリモートアクティビティと呼ばれるアクティビティによって表示されます。これらのダイアログの1つには、メインアプリMainActivityを起動するボタンがあり、標準の起動モードがあります。
ただし、このボタンがクリックされ、Startactivity()が呼び出されると、MainActivityは起動されませんが、対応する「開始アクティビティ:Intent {...}」がLogCatに表示されます。
リモーティーアクティブの起動モードを標準に設定すると、MainActivityが起動されますが、これは私が望むものではなく、リモートアクティビティは単にウィジェットの拡張であるため、他のアクティビティでスタックしたくありません。
また、flag_activity_new_taskで試しましたが、それは役に立たなかったし、とにかく必要ではないはずです ドキュメントによると:
一方、「シングルインスタンス」アクティビティでは、他のアクティビティがそのタスクの一部になることは許可されていません。タスクの唯一のアクティビティです。別のアクティビティを開始すると、そのアクティビティは別のタスクに割り当てられます - まるでflag_activity_new_taskが意図しているかのようです。
主なアクティビティを起動するにはどうすればよいですか?
更新 / errata:
MainActivityは実際に起動されますが、タスクの一部ではない場合にのみ。通常、ランチャーを介してMainActivityを起動し、押し戻してExitを開始すると、リモートアクティビティがMainActivityを起動します。
しかし、バックを押す代わりに、私が家に押し付けてMainActivityを離れる場合、リモートアクティビティはMainActivityを起動できませんが、LogCatには意図が表示されます。
私はこれをFroyoでテストしています。
何が起こっているのかという考えはありますか?
解決 2
問題が発見されました。この動作は、リモーティクティティでstartactivity()の前にfinish()を呼び出すときにのみ発生します。終了前にstartActivity()を呼び出すと、MainActivityがすでに既存のタスクの一部であるかどうかは正常に機能します。
図に行く...
他のヒント
多分 ノヒストリーフラグ あなたが探しているもののために働きますか?