私は通常、複数のタスクに存在したいアクティビティを持っているので、[戻る]ボタンは以前の状態を復元します。しかし、私はまた、既存のアクティビティにを使用し、新しいものをタスクスタックにプッシュしないでください(現在表示されているものを検索したいので)。ここに私の問題だ:私は「singleTop」にアクティビティの起動モードを設定した場合singleTopを使わないでAndroid SearchViewを使用するにはどうすればよいですか?
- 、SearchViewは、現在のアクティビティで動作しますが、スタックに新たな活動をContext.startActivity追加しません。
- アクティビティの起動モードを「標準」に設定した場合、startActivityは新しいアクティビティをスタックに追加しますが、既存のアクティビティを検索する代わりに新しい(空の)アクティビティを作成します。
私はどのような方法がSearchViewが意図フラグ(例えばFLAG_ACTIVITY_SINGLE_TOP使うように見つけることができません。私は、「singleTop」は、その後、すべての意図にFLAG_ACTIVITY_NEW_TASKを追加するために起動モードを設定し、周りに他の道を進んでみましたが、それは起動時にのみ働いていました新しいアクティビティクラスからアクティビティの新しいインスタンスを起動しようとすると、AndroidはFLAG_ACTIVITY_NEW_TASKを尊重せず、新しいタスクをスタックにプッシュしませんでした。
多分、私はできることがありますActivity.onNewIntentで、それ自身をクローンするように活動を強制する。
私はgivin検索ビューでgアップするだけで、その事実にもかかわらず「Android 3.0以降、アクションバーの項目としてSearchViewウィジェットを使用することがアプリで検索を提供するための好ましい方法です」(Source) - 今のところ、それはあまりにも柔軟性がなく、非自明な場合に有用であるように設定できないように思えます。
誰でもこの問題の解決策を見つけましたか?
レスポンスが不足している(ビュー数が少ない)ので、これは重要な問題ではないと思います。単一のトップアクティビティを設計して、独自のステートスタックを維持し、状態を切り替えることができます。その後、Backボタンをインターセプトして、タスクスタックを移動することをシミュレートします。しかし、唯一の選択肢であれば、Googleが本格的にSearchViewをプロダクション用に推奨し、独自の検索アクションコンポーネントを作成することにします。 – Canuck