Android の学習を始めたばかりで、PC 上で実行されているサーバーとのソケット接続を使用するアプリケーションを開発しています。接続の確立に成功し、「ホーム」ボタンが押されるまで、またはOnConfigChange イベントがあります。
アプリにボタンのあるアクティビティが 1 つあります (「接続」など)。それが押されると、電話はサーバーと接続し(すべてのソケットコーディングは非UIスレッドで行われます)、接続が成功するとTextView(「ステータス」など)を「接続済み」に変更しています。そのため、電話が回転したり、ホームボタンが押されたりすると、アプリが非表示になります。アプリに戻ると、アクティビティは初期段階から開始されます。最後のセッション中に作成されたすべてのオブジェクトが破棄され、ソケット接続が失われます。
さっぱりわからない、
1.アクティビティ UI が前面に表示されるたびに再作成されるのはなぜですか?
2.ユーザーが実際に(戻るボタンを押して)終了するまで、Androidはアクティビティの状態を保存できないのはなぜですか?
3.WindowsのようにAndroidがアプリを最小化して、ユーザーが去った最後の状態に戻ることができないのはなぜですか(すべてのオブジェクトと.
4.非UIスレッドですべてのソケット操作を実行しましたが、ユーザーがホームボタンを押して(戻ることなく)離れると、このソケット接続が閉じられました。そうであれば、スレッドで使用したソケットオブジェクトをどのように保存すればよいですか最後のインスタンスの間?
5.「OnPause」中にすべての UI 変更を維持する必要があるのはなぜですか? Android自体が同じことをできないのはなぜですか?(ユーザーが去ったときにアプリの状態があり、ユーザーが戻ったときに正確なアプリケーションの状態が必要なため)、ユーザーがアプリに戻ったときに同じ状態を戻しますか?
私は開発者として 2 年間働いていますが、Android は初めてです。上記の質問に光を当ててください。