Метод из библиотеки не должен вызываться до объявления определенной переменной - PullRequest
0 голосов
/ 02 июля 2018

Я создал проект Android и преобразовал его в файл AAR (Android Resource). Я импортировал файл в новый проект. Таким образом, есть один класс с именем CollectSensorData, который является классом-одиночкой. класс, как показано ниже:

package com.example.android.sensordata.Main;

import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import com.example.android.sensordata.localdatabase.DatabaseHelper;
import static android.content.Context.MODE_PRIVATE;

public class CollectSensorData  {
    @SuppressLint("StaticFieldLeak")
    private static CollectSensorData instance;
    static boolean flag;
    private static Context mContext;
    public static int freqlocaldb, freqserver;
    public static SharedPreferences sharedpreferences;
    public static String URL;
    private CollectSensorData() {

    }

    public static CollectSensorData getInstance(Context context) {
        if(instance==null) {
            instance = new CollectSensorData();
        }

        mContext = context;
        return instance;

    }


    public void onStartTrip(String Job_id, String Cab_Number, String Driver_ID, long time) {
        String deviceModel = android.os.Build.MANUFACTURER + " " + android.os.Build.MODEL;
        sharedpreferences = mContext.getSharedPreferences("trip", MODE_PRIVATE);
        flag = true;
        DatabaseHelper.tripinfo(Job_id, time, Cab_Number, Driver_ID, deviceModel);
        Intent intent = new Intent(mContext, MyService.class);
        mContext.startService(intent);
    }

    public void onEndTrip() {
        flag = false;
        Intent intent = new Intent(mContext, MyService.class);
        mContext.stopService(intent);
    }

    public void setFreqency(int FrequencyforLocalDB, int FrequencyforServer) {
        freqlocaldb = FrequencyforLocalDB;
        freqserver = FrequencyforServer;
    }
}

Существует строка, которая должна быть указана пользователем. Если строка не указана, указанные выше методы - onStartTrip, onEndTrip и setFrequency не должны работать.

Как мне убедиться, что строка указана до вызова любого из методов?

...