【发布时间】:2017-11-02 06:46:19
【问题描述】:
我有一个广播接收器,一旦安装了应用程序,它就会从 playstore 接收推荐人 ID,然后应该将其写入一个文件,以便在用户首次登录时发送到我的网络服务,然后它将奖励推荐人。
我面临的问题是,在活动中,当我尝试拉取值时,SharedPreferences 总是返回 null,但是在接收器上,我通过在推入后直接拉取值来测试接收器。
我尝试过的。
getSharedPreferences("referral", MODE_PRIVATE);
PreferenceManager.getDefaultSharedPreferences(this);
getSharedPreferences(context.getPackageName() + "_preferences", MODE_PRIVATE);
但是他们都没有工作,此时不知道该怎么做,我还尝试了以下答案: getDefaultSharedPreferences in a BroadcastReceiver Shared preferences inside broadcastreceiver Android: using sharedPreferences in a broadcast receiver getDefaultSharedPreferences in a BroadcastReceiver 但不适合我。
接收者
public class ReferralReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
String referrerString = extras.getString("referrer");
SharedPreferences sharedPref = context.getSharedPreferences("referral_pref", MODE_PRIVATE);
sharedPref.edit().putString("referrer", referrerString).apply();
Log.e("TEST", "Referrer is: " + referrerString + " | " + sharedPref.getString("referrer","null" +
"") + " | " + context.getClass().getSimpleName());
}
}
活动
String referrer = getSharedPreferences("referral_pref", MODE_PRIVATE).getString("referral", "null");
Log.e("test", referrer + " was ref");
日志猫
06-01 10:19:27.011 15963-15963 E/TEST: Referrer is: test | test | ReceiverRestrictedContext
06-01 10:19:32.906 15963-15963 E/test: null was ref
【问题讨论】:
标签: android