Điều này sẽ giúp bạn truy cập applicationContext
từ bất cứ đâu cho phép bạn đến applicationContext
bất cứ nơi nào có thể sử dụng nó; Toast
, getString()
, sharedPreferences
Vv
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 Application
lớ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 Application
lớ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. :)