アプリケーション オブジェクトに問題があります。現在、サービスを使用して、電子ゲーム ボードからの受信データをシミュレートしています。このデータは、2D ブール配列として表されます。Service は 5 秒ごとに Application Object のメソッドを使用して配列を更新します (setDetectionMap())。この配列は、別のメソッド (getDetectionMap()) を使用してメイン アクティビティのスレッドによって読み取られています。いくつかのデバッグの後、メインのアクティビティに変更が見られないことはほぼ確実です。私のアプリケーションオブジェクトのコードは次のとおりです。
public class ChessApplication extends Application{
private static ChessApplication singleton;
private boolean[][] detectionMap;
public static ChessApplication getInstance(){
return singleton;
}
@Override
public void onCreate() {
super.onCreate();
singleton=this;
detectionMap=new boolean[8][8];
}
public boolean[][] getDetectionMap(){
return detectionMap;
}
public void setDetectionMap(boolean[][] newMap){
detectionMap=newMap;
Log.d("Chess Application","Board Changed");
}
}
マニフェストをチェックし、オブジェクト宣言を何十回も書き直しました。LogCat タグを追加して、コードが実行されるべきときに実行されていることを確認し、冗長と思われるシングルトン コードを実装しました。 . これを引き起こしている可能性のあるアイデアはありますか?ちなみに、アクティビティの実行中に変数の状態を表示する方法を誰か教えてもらえますか? 前もって感謝します。