2013-05-31 20 views
-1

我正在嘗試創建一個擴展服務或線程的抽象類。這是因爲我必須每秒運行這個類來找出前景活動。如果我的服務使用Runnable,並使用Handler每秒運行一次。但我無法從主要活動啓動服務或線程。我知道抽象類不能被實例化,但是有什麼可以在這裏使用的工作嗎?請幫忙。如何在主活動中調用擴展服務或線程的抽象類?

public abstract class A extends Service Implements Interface { 
    public void onCreate() { 
     super.onCreate(); 
     mHandler.postDelayed(runnable, 1 * 1000); 
} 
    protected abstract void getData(); 

    public Runnable runnable = new Runnable() { 
     public void run() { 

     //Trying to find Foreground Activities 

     A start = new B(); 
     start.getData(); 

mHandler.postDelayed(runnable, 1 * 1000); 
} 
}; 

//Inteface methods defined here. 
} 

另一類:

public class B extends A { 

    public void getData() { 
     //Do my stuff 
    } 
} 

現在我需要調用這個類,使這一抽象方法可以執行其有史以來I類擴展A.

回答

1

來實例化一個抽象類(的匿名子類):


abstract class AbstractClass {} 

public class MyActivity extends Activity { 
    public void onCreate(Bundle i) { 
     AbstractClass abstractInstance = new AbstractClass(){}; 
    } 
} 

雖然實際上你不需要做th是。我會建議一個簡單的基於JavaSE併發的方法,使用ScheduledExecutorService

+0

我已經更新了我的問題,請看看 – madhu

+0

@ PeterVarga:你可以看到我更新的問題,一個類執行B類getData,因爲B擴展A.這樣,我可以創建許多擴展A的類,所以在所有的課程中,同樣的操作還在繼續。如果我從主活動開始創建一個類,那麼擴展A的所有類都將同時運行。我希望你明白我的問題。請幫忙。 – madhu