Androidのマルチタスクについてはよくわかりませんが、プロジェクトを試す前に質問したいと思いました。
Androidアプリケーション(Android 4.0以降のみを対象)をプログラムして、常にバックグラウンドで開き、すべてのネットワーク接続を維持し、UIを「描画」して、開くと常にすぐに開き、タブレットが何か他のことをしていても、すぐに使用できますか?
ありがとう。
Androidのマルチタスクについてはよくわかりませんが、プロジェクトを試す前に質問したいと思いました。
Androidアプリケーション(Android 4.0以降のみを対象)をプログラムして、常にバックグラウンドで開き、すべてのネットワーク接続を維持し、UIを「描画」して、開くと常にすぐに開き、タブレットが何か他のことをしていても、すぐに使用できますか?
ありがとう。
ほとんどの場合、フォアグラウンドサービスを作成する必要があります。フォアグラウンドサービスは、ユーザーが認識しているサービスであり、Androidのメモリが不足している場合に強制終了する候補とは見なされません。これは永続的な通知バーに関連付けられており、ユーザーはこれをタップしてアクティビティを前面に表示できます。ネットワーク接続がオフになっていないことを確認するには、サービスでウェイクロックを取得する必要があります。
ただし、バッテリーを停止させる可能性のある長時間のプロセスは悪い習慣と見なされることを忘れないでください。本当に強い理由がない限り、これを避ける必要があります。
いいえ、Androidはそのように構築されていません。OSは、より多くのリソースが必要な場合、常にバックグラウンドでサービス/アクティビティを強制終了できます。
常に実行されているサービス(スティッキーサービス)を作成して、リソースの問題が原因で強制終了された場合に、リソースが再び使用可能になったときに再起動することができます。アクティビティでは、それを行うことはできません。ただし、アクティビティが「一時停止」されていてバックグラウンドにある可能性があるため、非常に迅速に「再開」できます。しかし、Androidはリソースのためにそれを簡単に殺すことができます。
ファームウェアレベルでAndroidを変更し、独自のバージョンをビルドしない限り、アプリケーションを常にバックグラウンドで実行する方法はありません。Androidは、現在フォアグラウンドでアプリを実行するためにより多くのリソースが必要になると、他のアプリを強制終了します。
ただし、onPause()でデータとその現在の状態を保存し、onResume()で同じ状態を復元することで、アプリでこれをより適切に処理できるようにすることができます。