Java AsyncTask中的SharedReferences获得了表情值
我有登录活动和异步任务类 因此,当转发一些值以将活动登录到AsyncTask时。。用toast-msg测试它,我在msg中得到空值 我已经测试过使用上下文和许多方法,但不起作用 我在loginactivity的共享体验:Java AsyncTask中的SharedReferences获得了表情值,java,android,android-asynctask,sharedpreferences,Java,Android,Android Asynctask,Sharedpreferences,我有登录活动和异步任务类 因此,当转发一些值以将活动登录到AsyncTask时。。用toast-msg测试它,我在msg中得到空值 我已经测试过使用上下文和许多方法,但不起作用 我在loginactivity的共享体验: SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); Editor editor = prefs.edit(); editor.putSt
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Editor editor = prefs.edit();
editor.putString("logintemp", login1);
editor.putString("passwordtemp", pass1);
editor.apply();// commit is important here.
我在AsyncTask类的doInBackground中的代码:
Activity mActivity;
Context context ;
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(mActivity.getApplicationContext());
String username = preferences.getString("logintemp","");
Toast.makeText(mActivity.getApplicationContext(), username , Toast.LENGTH_LONG).show();
检索用户名时,将找不到用户名时的默认值设置为“”。 在后台任务中,使用context.getSharedPresences,然后使用mActivity.getApplicationContext() 我认为两者之间可能存在冲突,或者它们代表不同的上下文
commit()
不更新内存中的值,而只更新持久存储上的值。因此,如果您的API级别为10,那么我建议您使用apply()
,它也会更新内存中的值
//for example
editor.apply();
相同的结果给出空值