我有一个带增量计数器的功能,当用户点击一个按钮时我会调用它。 我想在用户按下它时每秒调用此功能一个新按钮。 我使用了报警管理器并且工作正常。但是当我尝试从广播接收器调用此功能时给我错误,因为它不是静态的。我该怎么办?
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 );
}
答案 0 :(得分:0)
如果要调用非静态方法,则需要该类的实例来调用它。
您可以创建一个返回实例的静态方法
private static ClassName instance;
public static ClassName getInstance(){
if (instance == null){
instance = new ClassName();
}
return instance;
}
您还可以在onCreate方法中设置实例。
答案 1 :(得分:0)
要么function1()
static
,要么假设a1class
是其所在的类,请创建该类的实例并以此方式调用该函数
a1class a1class = new a1class();
a1class.function1();