当活动停止时,Android使用服务保存数据

时间:2015-10-11 20:47:49

标签: android service save

public class ReadList{
    private static SparseArray<Read> LIST = new SparseArray<>();

    public static void add(int ID){
         LIST.put(ID, new Read(ID, DateFormat.getDateTimeInstance().format(new Date())));
    }

    public static void remove(int ID){
        if(LIST.indexOfKey(ID) >= 0 )
            LIST.remove(ID);
    }
}

我有一些类似的读取列表..正确且正常地使用SharedPreference保存数据。

但我想在onDestroy(),onStop()或onPause()方法中调用我的 DataSaveService 启动并保存数据SharedPreference文件..

public class DataSaveService extends Service {
    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onStart(Intent intent, int startId) {
        super.onStart(intent, startId);
        MyCustomSharedSaveData.saveAllReadListtoXML();
        MyCustomSharedSaveData.saveAllFavoriteListtoXML();
    }
}

有可能吗? 感谢您和我的英语不好......

1 个答案:

答案 0 :(得分:1)

onDestroy()电话取决于Android操作系统,因为它在内存不足时调用它,因此在那里拨打服务电话可能不是一个好主意。当活动完全隐藏在视图中时,将调用onStop(),用户最小化应用程序或从上一个活动打开新活动,所以我想你可以在 onStop中调用服务方法