Це має отримати доступ до нього applicationContext
з будь-якого місця, що дозволяє вам дістатися з applicationContext
будь-якого місця, яким можна скористатися; Toast
, getString()
, sharedPreferences
І т.д.
Сінглтон:
package com.domain.packagename;
import android.content.Context;
/**
* Created by Versa on 10.09.15.
*/
public class ApplicationContextSingleton {
private static PrefsContextSingleton mInstance;
private Context context;
public static ApplicationContextSingleton getInstance() {
if (mInstance == null) mInstance = getSync();
return mInstance;
}
private static synchronized ApplicationContextSingleton getSync() {
if (mInstance == null) mInstance = new PrefsContextSingleton();
return mInstance;
}
public void initialize(Context context) {
this.context = context;
}
public Context getApplicationContext() {
return context;
}
}
Ініціалізуйте Singleton у своєму Application
підкласі:
package com.domain.packagename;
import android.app.Application;
/**
* Created by Versa on 25.08.15.
*/
public class mApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
ApplicationContextSingleton.getInstance().initialize(this);
}
}
Якщо я не помиляюсь, це дає вам гачок на applicationContext скрізь, зателефонуйте до нього. ApplicationContextSingleton.getInstance.getApplicationContext();
Вам не потрібно це робити в будь-який момент, оскільки коли програма закривається, це все одно відбувається.
Не забудьте оновити, AndroidManifest.xml
щоб використовувати цей Application
підклас:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.domain.packagename"
>
<application
android:allowBackup="true"
android:name=".mApplication" <!-- This is the important line -->
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:icon="@drawable/app_icon"
>
Будь ласка, дайте мені знати, якщо ви бачите щось не так, дякую. :)