【发布时间】:2014-02-18 06:56:50
【问题描述】:
嗨,我正在使用 共享偏好 保存我的数据。在我的项目中,活动 1 中有 2 个活动,我将数据保存在 asynctask 内的 shared preference 中 >> @ 987654322@ 方法。在异步任务中,我正在从服务器下载多个文件。当我的第一个文件下载开始并且我正在更改活动时,我的 Activity-1 在后台,我的 Activity-2 在前台。我的文件正在后台下载我的@ 987654323@这次也调用SharedePreference返回空上下文,它给出了空指针异常。
如果 Activity-1 在前台,我没有收到空指针异常。 如果任何其他活动出现在前台,为什么它会返回空上下文?
我的日志:
02-18 06:45:55.503: W/System.err(1242): java.lang.NullPointerException
02-18 06:45:55.503: W/System.err(1242): at info.helper.MyPreferences.savePreferences(MyPreferences.java:17)
02-18 06:45:55.503: W/System.err(1242): at info.activity.DownloadActivity$DownloadFileFromURL.doInBackground(DownloadActivity.java:820)
02-18 06:45:55.503: W/System.err(1242): at info.activity.DownloadActivity$DownloadFileFromURL.doInBackground(DownloadActivity.java:1)
02-18 06:45:55.503: W/System.err(1242): at android.os.AsyncTask$2.call(AsyncTask.java:287)
02-18 06:45:55.503: W/System.err(1242): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
02-18 06:45:55.503: W/System.err(1242): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
02-18 06:45:55.503: W/System.err(1242): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
02-18 06:45:55.503: W/System.err(1242): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
02-18 06:45:55.503: W/System.err(1242): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
02-18 06:45:55.503: W/System.err(1242): at java.lang.Thread.run(Thread.java:856)
02-18 06:45:55.503: W/dalvikvm(1242): threadid=24: thread exiting with uncaught exception (group=0xa62b6288)
编辑#1
保存应用数据的常用方法:
public static void savePreferences(Context context, String key, String value) {
SharedPreferences sharedPreferences = context.getSharedPreferences(
MY_ST_PREFS, Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
像这样在 AsyncTask 中保存数据:
MyPreferences.savePreferences(DownloadActivity.this.getActivity(),
"downloading_storyid", downloadingStoryId);
【问题讨论】:
-
代码在哪里??在此处添加相应的代码..
-
在 asyn 的后期执行中保存共享首选项
-
请检查我的编辑。
-
你的类是用 Fragment 还是 FragmentActivity 扩展的??
-
我的 DownloadActivity 扩展了 Fragment。
标签: android nullpointerexception sharedpreferences