1


我有一个服务BroadcastReceiver
如何从 的函数调用服务类中的onReceive函数BroadcastReceiver
如果我不能,我能做什么?
这是一些代码:

public class MyService extends Service {
    private BroadcastReceiver broadcastReceiver;

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public void onCreate() {
        broadcastReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                ... // How to call myFunction() here?
            }
        };
        ... // intentFilter, registerReceiver, etc...
    }

    private void myFunction() {
        ... // do something
    }
}
4

1 回答 1

1

你可以这样称呼它:

    broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            myFunction();
        }
    };

或者,如果与方法myFunction同名BroadcastReceiver,您可以像这样显式调用外部类方法:

    broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            MyService.this.myFunction();
        }
    };
于 2012-06-12T21:49:45.567 回答