私はArduinoとやり取りするAndroidアプリケーションに取り組んでいます。複数のアクティビティを管理しようとしていますが、それぞれが Arduino ボードの特定の部分を制御する責任があります。
残念ながら、Web 上のチュートリアルでは 1 つのアクティビティしか使用しません。そのため、新しいアクティビティに移動しているときにArduinoとの接続を維持したり、適切に閉じてから新しいアクティビティで再度開いたりする方法がわかりません。
何か案が?
私はArduinoとやり取りするAndroidアプリケーションに取り組んでいます。複数のアクティビティを管理しようとしていますが、それぞれが Arduino ボードの特定の部分を制御する責任があります。
残念ながら、Web 上のチュートリアルでは 1 つのアクティビティしか使用しません。そのため、新しいアクティビティに移動しているときにArduinoとの接続を維持したり、適切に閉じてから新しいアクティビティで再度開いたりする方法がわかりません。
何か案が?
Serviceを使用して Arduino に接続し、その接続を開いたままにすることができます。アクティビティは、開始、停止、切り替えなどでサービスと通信できます。
編集:これを行う方法は、別の質問/回答で既に処理されています:
これまで Java で Arduino を使用したことはありませんが、Singletonパターンに従うことをお勧めします。シングルトン パターンを使用すると、それに接続するために使用しているオブジェクトはすべて、複数のアクティビティと複数のスレッドからアクセスできます。
ただし、シングルトンを使用しても問題は軽減されます。それを閉じる/再開する方法を理解する必要があります。
また、アクティビティ ライフサイクルがどのように機能するかを理解することも重要です。ユーザーが電話を受けたり、画面がオフになったり、画面の向きが変わったりすると、アクティビティが破棄されて再作成されます。保存して元の場所に復元する方法を処理する必要があります。これはおそらく、接続を閉じてから再度開く必要があることを意味します。