0
有android應用程序存儲數據到sqlite。我在數據庫表中保存了一個路由列表。我在屏幕上顯示活動路由上的數據/爲了釋放處理器,我使用了靜態List內部服務。要釋放處理器,我使用靜態List內部服務。我從服務器接收數據時更改列表。刪除靜態varialble安卓服務
public class NetworkService extends Service{
private static NetworkService instance = null;
private static List<RouteTask> routeTaskList;
private static LoadRoutesTask loadRoutesTask;
private static RouteChangedListener rtListener ;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
if (instance == null) {
instance = this;
NetworkManager.updateNetworkInfo(this);
NetworkManager.setNetworkListener(this);
}
}
public static Context getCurrentContext() {
return instance;
}
public static boolean hasInstance() {
return instance != null;
}
public static void setRouteTaskList(List<RouteTask> rtList)
{
routeTaskList = rtList ;
}
public static List<RouteTask> getRouteTask(){
return routeTaskList;
}
}
在實際應用中,我可以設置值
NetworkService.setRouteTaskList(list);
或獲得價值:
List<RouteTask> = NetworkService.getRouteTaskList();
我的應用程序通常使用的,而不是數據表的SQL查詢routeTaskList。
現在的任務是更改服務,爲android開發標準。我刪除了靜態字段,現在,我通過intents運行服務(startService(intent))。我如何刪除routeTaskList對象的靜態setter和getter?
從變量'routeTaskList'中移除'static'屬性,並從setter/getter中移除'static'屬性。現在,你可以實例化一個新的NetworkService()對象,並調用你的對象 –
上的getter和setter,但是我必須多次啓動服務。靜態對象是一個例子。在statService之後它會有另一個對象 –
@ j.seashell你絕對肯定不能使用'new'實例化一個Android'Service'。只有Android框架才能實例化Android組件! –