Android 如何使用报警管理器增加整数

Android 如何使用报警管理器增加整数,android,Android,我想增加一个数字,并在一天中的特定时间使用AlarmManager在文本视图中显示它,但它不起作用。 应用程序正在调试并显示0,但未增加整数。 请帮忙,这是代码 public class MainActivity extends AppCompatActivity { TextView tv; int a = 3; Calendar calendar = Calendar.getInstance(); @Override protected void o

我想增加一个数字,并在一天中的特定时间使用AlarmManager在文本视图中显示它,但它不起作用。 应用程序正在调试并显示0,但未增加整数。 请帮忙,这是代码

public class MainActivity extends AppCompatActivity {
    TextView tv;
    int a = 3;
    Calendar calendar = Calendar.getInstance();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv = (TextView) findViewById(R.id.tv);

        MyAlarm alarm = new MyAlarm();

        setAlarm(calendar.getTimeInMillis());
        int g = alarm.i;
        tv.setText(String.format("%d", g));
    }

    private void setAlarm(long time) {

        calendar.setTimeInMillis(System.currentTimeMillis());
        //getting the alarm manager
        AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

        //creating a new intent specifying the broadcast receiver
        Intent i = new Intent(this, MyAlarm.class);

        //creating a pending intent using the intent
        PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, 0);
        calendar.set(Calendar.HOUR_OF_DAY, 17);
        calendar.set(Calendar.MINUTE, 55);
        calendar.set(Calendar.SECOND, 0);
        //setting the repeating alarm that will be fired every day
        am.setRepeating(AlarmManager.RTC, time, AlarmManager.INTERVAL_FIFTEEN_MINUTES, pi);
        Toast.makeText(this, "Alarm is set", Toast.LENGTH_SHORT).show();
    }
}
broad cast在这里

public class MyAlarm extends BroadcastReceiver {
    int i;

    @Override
    public void onReceive(Context context, Intent intent) {
        i++;
    }
}

要添加默认构造函数,请在MyAlarm类中尝试以下操作:

MyAlarm(){

}
还添加此方法:

 public int setI(){
     i = i+1;
     return i;
 }
这就是它现在的样子:

public class MyAlarm extends BroadcastReceiver{
    int i;
    MyAlarm(){
        i=0;
    }

    public int setI(){
        i = i+1;
        return i;
    }

    @Override
    public void onReceive(Context context,Intent intent) {
        i++;
    }
}
现在,在onCreate()中调用它,它将递增i。 你可以说

int g = myAlarm.setI();
在setAlarm()函数中,或在任何需要增加它的地方。
g现在将递增。我希望这有帮助

唐;你不需要在MyAlarm类中使用默认构造函数吗?ishan是怎么做的?请建议使用默认构造函数来创建类的对象。每次调用它时,它都会递增i。所以你可以在setAlarm()中调用它。你能告诉我如何编写我的报警构造函数吗?是的,只需将我在回答中给出的代码添加到你的MyAlarm类中。好的,你能具体告诉我你遇到了什么问题吗?也许是因为你的方法在类外。