3

私は経験豊富な開発者(WPF)であり、Android開発に移行しています。私の質問:私が開発しているアプリでは、ユーザーはローカルストレージ(SDCARDなど)を参照してファイルを選択できます。ここで、(ユーザーが選択した後に)新しいアクティビティを作成して、選択したファイルでアプリに実行させたいことを処理する必要があります。または、選択したファイルのパス/名前を渡すためのより良いアプローチです。メインのアクティビティに戻り、ITに次のアクティビティを開始させますか?

言い換えると、メインのアクティビティで他の(サポート)アクティビティを起動することをお勧めしますか、それとも、あるアクティビティチェーンを別のアクティビティチェーンに繰り返し接続することは完全に問題なく正常ですか?

ありがとう!

4

2 に答える 2

1

短くて甘い:AndroidはさまざまなUIアクションを処理するように設計されているため、個別のアクティビティを使用してください。

Android Devドキュメントから:

システム内のアクティビティは、アクティビティスタックとして管理されます。新しいアクティビティが開始されると、それはスタックの一番上に配置され、実行中のアクティビティになります。前のアクティビティは常にスタック内のその下に残り、新しいアクティビティが終了するまで再びフォアグラウンドになりません。

アクティビティには、基本的に4つの状態があります。

  • 画面の前景(スタックの一番上)にあるアクティビティがアクティブまたは実行中の場合。

  • アクティビティがフォーカスを失ったがまだ表示されている場合(つまり、新しい非フルサイズまたは透過的なアクティビティがアクティビティの上にフォーカスを持っている場合)、そのアクティビティは一時停止されます。一時停止されたアクティビティは完全に有効です(すべての状態とメンバー情報を維持し、ウィンドウマネージャーに接続されたままです)が、メモリが極端に少ない状況ではシステムによって強制終了される可能性があります。

  • アクティビティが別のアクティビティによって完全に隠されている場合、そのアクティビティは停止されます。それでもすべての状態とメンバー情報が保持されますが、ユーザーには表示されなくなるため、ウィンドウは非表示になり、他の場所でメモリが必要になるとシステムによって強制終了されることがよくあります。

  • アクティビティが一時停止または停止した場合、システムは、アクティビティの終了を要求するか、単にプロセスを強制終了することにより、アクティビティをメモリから削除できます。ユーザーに再度表示された場合は、完全に再起動して以前の状態に復元する必要があります。
于 2012-06-16T15:23:13.293 に答える
0

はい、アクティビティのチェーンがあってもまったく問題ありません。主にナビゲーションが原因です。ユーザーがファイルを選択し、それを操作してから「戻る」ボタンを押すと、以前に開いたアクティビティが表示されます (その後、別のファイルを選択する可能性があります)。そうしないと、ユーザーにとって予測できない動作になります。

于 2012-06-16T15:20:32.267 に答える