Получить клиент мобильного сервиса в качестве глобальной переменной и хранить данные в Azure из другого класса в Android - PullRequest
0 голосов
/ 13 июня 2018

Я прошел проверку подлинности с использованием Azure, и для этого я использовал клиент мобильного сервиса в одном действии, а следующее действие должно добавить некоторые данные, поэтому мне нужен клиент мобильного сервиса для хранения данных в базе данных Azure.Как я могу это сделать?Пожалуйста, предоставьте мне несколько решений.

Ниже приведен код для аутентификации с использованием клиента мобильного сервиса при входе в систему ниже:

public static MobileServiceClient mClient;

public MobileServiceTable<User> mUser;

public static MobileServiceTable<Location> mLocation;



    try {

        // Create the client instance, using the provided mobile app URL.

        mClient = new MobileServiceClient(url, this);

        mClient.setAndroidHttpClientFactory(new OkHttpClientFactory() {

            @Override
            public OkHttpClient createOkHttpClient() {

                OkHttpClient client = new OkHttpClient();

                client.setReadTimeout(20, TimeUnit.SECONDS);

                client.setWriteTimeout(40, TimeUnit.SECONDS);

                return client;
            }
        });
        //connecting the azure user table dbo.users

        mUser = mClient.getTable("User", User.class);

        mLocation = mClient.getTable("Location", Location.class);

добавление пользователя в базу данных Azure похоже на

public User addItemInTable (Данные пользователя) создает исключение ExecutionException,

InterruptedException {

                User entity;

                entity = mUser.insert(data).get();

                gotomaps();

                return entity;

}

Теперь мне нужно сохранить местоположение в Azure, используя mclient, как указано выше для пользователя.

1 Ответ

0 голосов
/ 14 июня 2018

Согласно вашему описанию.

Для хранения данных в Azure мы можем сделать следующее:

public Location addLocation(MobileServiceTable<Location> table, Location location){
      return table.insert(location).get();
}

Использование:

MobileServiceTable<Location> table = mClient.getTable("Location", Location.class);
Location location=new Location();
//....
addLocation(table, location);

Чтобы установить клиент службы в качестве глобальной переменной, мы можем использовать [android.app.Application] для достижения этой цели.

[android.app.Application] имеет единственный экземплярво всем жизненном цикле приложения.Вот простая демонстрация для вас:

Создание расширений классов [android.app.Application]

package cn.azurepro.test.global;

import android.app.Application;

import com.microsoft.windowsazure.mobileservices.MobileServiceClient;

public class MyApplication extends Application {

    private MobileServiceClient mobileServiceClient=null;


    public void setMobileServiceClient(MobileServiceClient mobileServiceClient){
        this.mobileServiceClient=mobileServiceClient;
    }

    public MobileServiceClient getMobileServiceClient(){
        return mobileServiceClient;
    }

@Override
public void onCreate() {
    super.onCreate();

}

}

Установите полное имя этого класса в качестве атрибута имени приложения, как показано ниже:

enter image description here

Затем мы можем использовать его в различных видах деятельности, как показано ниже:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MyApplication myApplication= (MyApplication) this.getApplication();
        mClient = myApplication.getMobileServiceClient();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...