問題は、アクティビティからTaskTimerApplication.TESTにアクセスするとき、それはまだ「作成」であるが、サービスでは本来あるべき「変更」であるということです。アクティビティがデータにアクセスする前に、サービスがコードを実行していることを100%確認しました。以下は、問題をより明白な方法で提示する簡単なテストシナリオです。
アプリケーションコード:
public class TaskTimerApplication extends Application {
// Static properties
private static final String TAG = "Application";
public static final boolean DEBUG = true;
public static String TEST = "Declaration";
@Override
public void onCreate() {
super.onCreate();
TEST = "Creation";
Log.v(TAG, "Created");
}
}
サービスコード:
public class TaskService extends Service {
public static final String TAG = "TaskService";
@Override
public void onCreate() {
TaskTimerApplication.TEST = "Modification";
Log.d(TAG, TaskTimerApplication.TEST);
}
}
私の完全な非テストコードは、私のGitHubプロジェクトで見ることができます。完全なコードでは、TASKS ArrayListはアクティビティでは空のままですが、サービスでは適切に入力されます。