我有一个应用程序,它接收推送消息并将时间戳存储在SharedPreference中。退出应用程序后,我会收到由以下原因引起的NPE:
SharedPreferences pref = MainActivity.mainActivity.getSharedPreferences("LAST_SYNC", Context.MODE_PRIVATE);
当应用程序在前端运行甚至在多任务中运行时,它都可以正常工作。我希望您能收到一些有关在应用未运行时如何处理流程的建议。谢谢
代码:
// Store Push received time.
Log.d("eLOQ", "Updating last time synced");
DateFormat lastSyncFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm");
SharedPreferences pref = MainActivity.mainActivity.getSharedPreferences("LAST_SYNC", Context.MODE_PRIVATE);
SharedPreferences.Editor ed = pref.edit();
ed.putString("LAST_SYNC_TIMESTAMP", lastSyncFormat.format(new Date()));
ed.apply();
答案 0 :(得分:0)
在运行块中处理您的代码段:
Handler h = new Handler(Looper.getMainLooper());
h.post(new Runnable() {
public void run(){
// enter code here
// do not write your code in main thread
// take getApplicationContext
}
});