Esto debería applicationContext
permitirle acceder desde cualquier lugar, permitiéndole llegar a applicationContext
cualquier 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 Application
subclase:
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.xml
para usar esta Application
subclase:
<?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. :)