如何从同一个 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) {
}
}
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) {
}
}