1


のサービスがありBroadcastReceiverます。の関数
からサービスクラスの関数を呼び出すにはどうすればよいですか? できない場合は、どうすればよいですか?ここにいくつかのコードがあります:onReceiveBroadcastReceiver

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 に答える