我想從服務XYZ調用非靜態方法。該服務在啓動時由接收器啓動。 有人有想法從這個正在運行的服務中運行方法嗎? 在這個論壇中的一個解決方案是使該方法是靜態的,並使用單例模式執行。但是還有另一種方法嗎?也許用活頁夾?如何從廣播中運行的服務執行方法?
//編輯,比如我有以下clases:
public class MyService extends Service{
.....
public void method(){
//TODO
}
}
public class MyBroadcastReceiver extends BroadcastReceiver{
.....
public void onReceive(Context context, Intent intent) {
String intentAction=intent.getAction();
if(intentAction.equals(Intent.ACTION_BOOT_COMPLETED)){
//start service
Intent serviceIntent = new Intent(context, MyService.class);
context.startService(serviceIntent);
}
else{
//TODO call method() in MyService
}
}
我如何調用該方法method()
?我知道我可以使用context.getSystemService()
系統服務。但是,我怎麼能得到我自己的服務對象?
問候
我不確定你想要完成什麼。當您通過服務進行廣播時,您可以在任何活動活動中收聽廣播 - 當您收到廣播時,您可以執行任何您想要的活動。如果您在接收廣播時嘗試在您的服務中運行某個方法,那麼您也可以在沒有單例的情況下執行該方法。 – jlindenbaum
我的服務和我的廣播都是獨立的。在更新中,我有一個例子 –