0
我正在致力於檢索JSON網址並顯示它的AppWidget
。我還會顯示小部件上次更新時的TextView
,顯示「最近更新時間:9.00am」。請注意,這應該是相對的時間,也就是說,我不想顯示「最近更新:27/8/2015 9.00am」。如果小部件沒有更新一天,它應該顯示「上次更新:昨天」。Android AppWidget - 如何緩存我自己的類?
當互聯網連接存在時沒有問題,但當它不是我想繼續顯示以前的結果並更新「最近更新」TextView
,即計算現在和上次更新時間之間的相對時間字符串。我如何緩存這些信息?
通過this widget的啓發,我使用的是自定義的ClientCache.java類
import android.util.SparseArray;
public class ClientCache
{
private static SparseArray<ChannelFeedData> cache = new SparseArray<ChannelFeedData>();
private ClientCache() {}
public static void update(int appWidgetId, ChannelFeedData cfd)
{
cache.put(appWidgetId, cfd);
}
public static ChannelFeedData fetch(int appWidgetId)
{
return cache.get(appWidgetId);
}
public static void remove(int appWidget)
{
cache.remove(appWidget);
}
public static boolean isCached(int appWidget)
{
return fetch(appWidget) != null;
}
}
我ChannelFeedData
類包括商店,當它被檢索的方法,但調用isCached
回報false
如果小部件在已死亡與此同時。
我如何緩存我自己的類,即使我的AppWidget
由系統死亡,從時間恢復時間?
您當前使用的內存緩存。如果你不想在你的應用程序被殺時保留你的數據,你將需要一個文件緩存,比如SQLite數據庫。 – nhaarman