Điều này sẽ giúp bạn truy cập applicationContexttừ bất cứ đâu cho phép bạn đến applicationContextbất cứ nơi nào có thể sử dụng nó; Toast, getString(), sharedPreferencesVv
Người độc thân:
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;
}
}
Khởi tạo Singleton trong Applicationlớp con của bạn :
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);
}
}
Nếu tôi không sai, điều này mang lại cho bạn một liên kết với applicationContext ở mọi nơi, hãy gọi nó với ApplicationContextSingleton.getInstance.getApplicationContext();
Bạn không nên xóa điều này bất cứ lúc nào, vì khi ứng dụng đóng, dù sao thì nó cũng đi theo.
Hãy nhớ cập nhật AndroidManifest.xmlđể sử dụng Applicationlớp con này :
<?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"
>
Xin vui lòng cho tôi biết nếu bạn thấy bất cứ điều gì sai ở đây, cảm ơn bạn. :)