【问题标题】:Broadcast Receiver and Activity SharedPreferences not writing to same file?广播接收器和活动 SharedPreferences 没有写入同一个文件?
【发布时间】: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


    【解决方案1】:

    调用 putString() 时,您有一个名为“referrer”的键,而调用 getString() 时,您的键名为“referral”。

    我建议您创建一个名为 KEY_REFERRER = "referrer" 的静态变量并将其用作 -

    putString(KEY_REFERRER, refferString)
    

    getString(KEY_REFERRER, "defaultValue")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多