我想在Activity
暫停時保存一些數據量。我用我自己的ContentProvider
支持SQLite數據庫。通過ContentProvider完成操作的可靠方法
假設,即同名但實際節電該方法是這樣的:
public void saveData() {
//perform operations over ContentProvider in current thread
}
問題是:這是安全的,只是調用這個方法在(使用新的線程)?
public void onPause() {
super.onPause();
new Thread(new Runnable() {
public void run() {
saveData();
}
}).start();
}
或者我應該開始一個新的Service
這將完成這項工作在後臺?或者,也許有更可靠的方法來確保數據被保存?
只要Thread在有限的時間內終止,我就不會看到這個問題。但是,隨後的SQLite操作將在此期間阻止,因此非常快速的暫停恢復場景會稍微滯後。 – 2013-02-25 13:41:18
@ User117問題是我不確定我可以稱爲「有限」。所以,假設這個線程將在不可預知的時間內終止。 – 2013-02-25 13:44:04
考慮使用asyncTask。開始新線程需要更多時間。 – Leonidos 2013-02-25 13:49:22