Esto debería applicationContextpermitirle acceder desde cualquier lugar, permitiéndole llegar a applicationContextcualquier lugar que pueda usarlo; Toast, getString(), sharedPreferences, Etc.
El singleton:
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;
}
}
Inicialice el Singleton en su Applicationsubclase:
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);
}
}
Si no me equivoco, esto le da un gancho a applicationContext en todas partes, ApplicationContextSingleton.getInstance.getApplicationContext();
llámelo con No debería tener que borrar esto en ningún momento, ya que cuando la aplicación se cierra, esto va con ella de todos modos.
Recuerde actualizar AndroidManifest.xmlpara usar esta Applicationsubclase:
<?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"
>
Avísame si ves algo mal aquí, gracias. :)