0

我有一个带有增量计数器的函数,当用户单击按钮时我调用它。当用户按下它时,我想制作一个新按钮,每秒调用一次此函数。我使用了警报管理器并且工作正常。但是当我尝试从广播接收器调用此函数时给我错误,因为它不是静态的。我该怎么办?

public class MyStartServiceReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

  Toast.makeText(context, "Send ....",Toast.LENGTH_LONG).show();

  //Intent service = new Intent(context, AlarmService.class);
      //context.startService(service);    
      //String msg = intent.getStringExtra("data");

  //String msg="data";

  a1class.function1();

}

public void function1(){

  counter++;
  //Toast.MakeText( counter );

}
4

2 回答 2

2

要么制作function1() static,要么假设a1class它所在的类,创建类的实例并以这种方式调用函数

a1class a1class = new a1class();
a1class.function1();
于 2013-07-30T19:12:50.740 回答
0

如果你想调用一个非静态方法,你需要一个类的实例来调用它。

您可以创建一个像这样返回实例的静态方法

private static ClassName instance;

public static ClassName getInstance(){
   if (instance == null){
      instance = new ClassName();
   }
   return instance;
}

您还可以在 onCreate 方法中设置实例。

于 2013-07-30T19:11:56.340 回答