如何从同一个 activity 中的静态内部 class 调用非静态方法

how to call non static method from static inner class within same activity

public class ABC extends Activity{

    public void foo(int val)
    {
    }
    ...
    public static class Receive extends BroadcastReceiver{
        @Override
        public void onReceive(Context context, Intent intent) {
            ....
        }
    }
    ...
}

任何人都可以帮助我如何从 Receive class

onReceive() 调用 foo()

public void foo(int val) 移动到 Class Receive

public class YourActivity extends AppCompatActivity {
    static YourActivity instance;
    ...
    ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
       instance = this;
    }
    ...
    ...
    public void foo() {}

static class Receiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            instance.foo();
        }
    }

如果您不能使 foo 方法静态化,那么您可以从 receive 中删除静态化 class。

public class Receive extends BroadcastReceiver{
    @Override
    public void onReceive(Context context, Intent intent) {

    }
}