关闭应用程序/不运行时使用的正确上下文是什么。 --

时间:2018-09-14 15:50:34

标签: android

我有一个应用程序,它接收推送消息并将时间戳存储在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();

1 个答案:

答案 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
             }
});