我需要測試,如果這IntentService
正在運行或不和已經創建了static
方法isInstanceCreated()
資格GC。它會在您看到真或假時返回。當是這個類在這個特殊的設置
我試圖瞭解發生什麼事希望你能跟着我..
現在,到底發生了什麼,如果在這裏:
1 - 我稱之爲isInstanceCreated()
方關於GC 一個BroadcastReceiver
(我的想法是,當BroadcastReceiver
完成和資格GC,該IntentService
也有資格GC)
2 - 如果我叫isInstanceCreated()
從Application
關於GC 類(我的想法是IntentService
是GC當Android的應用殺)
3-靜態類方法的訪問者將持有引用的東西..?
4-我知道,靜態最終字段硬編譯器編碼和訪問靜態最終字段時靜態的東西像靜態塊和領域類不會被裝載。但是當我調用isInstanceCreated()
時,會發生什麼情況,靜態內容是從上到下加載的,因爲它是在代碼中寫入的。但是,當我撥打isInstanceCreated()
時,內存消耗如何?當我用New
或class.forname
實例化類並創建實例併爲孔類權限分配內存時。當我打電話給isInstanceCreated()
時,整個班級也佔用了內存(當然,沒有人可以訪問非靜態內容,因爲它需要先實例化)。希望你遵循我的學習曲線,並可以給出一些答案。
public class MyIntentService extends IntentService {
private static boolean stopNow;
private Integer someInt = 10;
private static MyIntentService instance = null;
@Override
public void onCreate() {
super.onCreate();
instance = this;
}
public MyIntentService() {
super("MyIntentService");
}
public static boolean isInstanceCreated(){
return instance != null;
}
@Override
protected void onHandleIntent(Intent intent) {
}
public boolean someMethod(){
{
// much more methods
}
我知道這對我的作品,但getRunningAppProcesses bad solution by Dianne Hackborn
因此,當我調用'isInstanceCreated()'類加載器將靜態成員放入[JVM靜態部分](http://www.javatutorialhub.com/java-stack-heap.html),他們將留在那裏不會被刪除,直到我的應用程序被殺害。? 'getRunningServices'就是我現在使用的,但是想要離開它 – Erik
這是正確的。 – acj