在意图中获取 SharedPreferences
Get SharedPreferences inside an intent
我的问题是我需要 shared Preferences
中的信息 intent
。
每次发送存在无线网络的意图时,我想检查是否在我的应用程序中选择了自动上传,如果它触发了操作。
不幸的是我无法在这个context
中得到shared preferences
,因为getApplicationContext
和getSharedPreferences
无法解析。
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.widget.Toast;
import java.io.File;
import static online.simpledesign.bikelog.Startup.mypreference;
public class WifiUploader extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (info != null && info.isConnected()) {
SharedPreferences pref = getApplicationContext().getSharedPreferences(mypreference, 0);
SharedPreferences sharedpreferences = getSharedPreferences(mypreference,Context.MODE_PRIVATE);
if (sharedpreferences.contains("autoupload")) {
if (sharedpreferences.getBoolean("autoupload",false)){
// Upload things.
}
}
}
}
}
感谢任何提示。
代替这一行
SharedPreferences pref = getApplicationContext().getSharedPreferences(mypreference, 0);
使用这个
SharedPreferences pref = context.getSharedPreferences(mypreference, 0);
使用上下文代替 getApplicationContext()
要获得 SharedPreferences 的正确上下文,请在 onReceive()
中使用 context.getApplicationContext()
我的问题是我需要 shared Preferences
中的信息 intent
。
每次发送存在无线网络的意图时,我想检查是否在我的应用程序中选择了自动上传,如果它触发了操作。
不幸的是我无法在这个context
中得到shared preferences
,因为getApplicationContext
和getSharedPreferences
无法解析。
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.NetworkInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.widget.Toast;
import java.io.File;
import static online.simpledesign.bikelog.Startup.mypreference;
public class WifiUploader extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if (info != null && info.isConnected()) {
SharedPreferences pref = getApplicationContext().getSharedPreferences(mypreference, 0);
SharedPreferences sharedpreferences = getSharedPreferences(mypreference,Context.MODE_PRIVATE);
if (sharedpreferences.contains("autoupload")) {
if (sharedpreferences.getBoolean("autoupload",false)){
// Upload things.
}
}
}
}
}
感谢任何提示。
代替这一行
SharedPreferences pref = getApplicationContext().getSharedPreferences(mypreference, 0);
使用这个
SharedPreferences pref = context.getSharedPreferences(mypreference, 0);
使用上下文代替 getApplicationContext()
要获得 SharedPreferences 的正确上下文,请在 onReceive()
context.getApplicationContext()