【发布时间】:2012-09-18 05:41:59
【问题描述】:
我有一些代码在 98% 的时间内都可以正常工作,并且在我自己的测试期间 100% 可以正常工作,因此除了让用户设备遇到此问题之外,我无法真正重现该问题。
我在 onPostExecute() 中所做的是设置这样的参数:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( AddProblemActivity.this);
prefs.edit().putString("recent_problem_id", result ).commit();
然后进入下一个活动:
Intent myIntent = new Intent(AddProblemActivity.this, ProblemActivity.class);
AddProblemActivity.this.startActivity(myIntent);
然后尝试像这样在那里获取该参数:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(
ProblemActivity.this);
// display a loading message before problem loads.
String recent_problem_id = prefs.getString( "recent_problem_id" , null );
if ( recent_problem_id == null )
{
// Sometimes it is null!
}
有人知道为什么会这样吗?
谢谢!
【问题讨论】:
-
发生这种情况的设备——它们有什么共同点吗?比如制造商、API 版本,什么?
-
@Fildor 我自己无法在任何设备上重现这一点,实际上我不确定是否可以从活动中的代码中获取设备信息..对我来说是可能的在发生此类问题时检测有关其设备的信息?
-
有些库可以为您提供该功能,是的。但无论如何:一定有人告诉过你,他们有这个问题?
-
等一下……我当然知道:android.os.Build 在那里你可以得到用户正在使用的版本,硬件等等developer.android.com/reference/android/os/Build.html
-
没有解决您的问题,但您是否使用 SharedPreferences 只是为了将 id 发送到下一个活动?你不能在意图中将它作为额外的发送吗?
标签: android