1

私のアプリは単一のインスタンスとして実行するように設計されており、[戻る] ボタンをクリックしてもアプリを終了してスタート画面に戻ることはできません。これは、各画面がアクティビティになる可能性のある画面の階層をナビゲートするために内部的に使用されるためです。

ただし、外部アプリはアプリの内部アクティビティの 1 つを起動できます。アクティビティの目的が何であれ、ユーザーが作業を終えると、ユーザーの直感的なアクションは、[戻る] ボタンを押して、呼び出し元のクライアントに戻ることです。しかし、戻るボタンを終了できないようにしているため、ユーザーは戻ることができません。

アクティビティがクライアントによって起動されていることをコードが検出したときに、これをオーバーライドするコードを追加できます。ただし、問題は、アプリを閉じて戻ると、ユーザーが中断した場所からアプリに戻る可能性があることです。しかし、呼び出し元のクライアントに戻るためにアプリを閉じたので、ユーザーは最後に開いたアプリに戻ることができません。私のアプリは単一のインスタンスのままにしておく必要があるため、起動されるアクティビティを複数回作成することはできません。呼び出し元のクライアントに戻るだけでなく、呼び出し元のクライアントがそのアクティビティの 1 つを使用したときにアプリが実行されていた場合、アプリを実行し続ける方法について何か提案はありますか?

4

1 に答える 1

0

一般に、戻るナビゲーション トレイルはプログラムで制御できます。TaskStackBuilderと、通知の処理に関するドキュメントを参照してください 。あなたがしようとしていることは、いわゆる「バックスタック」を制御することのようです。TaskStackBuilder を使用する場合、動作は使用しているプラ​​ットフォームのバージョンと一致します。

3.0 より前のプラットフォームでは、[戻る] ボタンは、バック スタックを経由して、電話の電源がオンになってからユーザーが実行した最初のタスクまで移動しました。Post 3.0, back はタスクの境界を越えません。他のタスクに移動するには、ユーザーは [最近のアイテム] アイコンをクリックします。アプリ内のタスクの「先頭」に移動するためのアプリ内の「上」アイコンもあります。TaskStackBuilder は、すべてのバージョンで「正しいことを行います」。

現在のプラットフォーム バージョンでは、Back がアプリを終了できないようにしても問題ありません。Back は現在のタスクの最初のアクティビティにのみ移動する必要があるためです。3.0 より前のバージョンでは、Back がアプリを終了できないようにする方が問題が大きく、個人的にはそうはしませんが、それはあなた次第です。

インテントがアプリを起動した後にユーザーが [戻る] をクリックするとどうなるかは、私が引用したドキュメントから明らかです。基本的にやりたいことは、前のタスクに戻ることです。

于 2012-06-29T21:44:50.630 に答える