有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Android应用程序特定时间内的java报警

有人能告诉我如何在安卓应用程序中创建一个警报,从当前时间开始,并在特定时间内每10分钟重复一次

例如,根据不同的情况,警报应重复的时间为2小时,另一种情况可能仅为1:30小时,依此类推

有办法吗

实际上,我使用了一个从网络上获取的代码,如下所示:

公共类MyAlarmService扩展了该服务{

@Override
    public void onCreate() {

        // TODO Auto-generated method stub

    }

    @Override
    public IBinder onBind(Intent intent) {

        // TODO Auto-generated method stub

        Toast.makeText(this, "MyAlarmService.onBind()", Toast.LENGTH_LONG)
                .show();

        return null;

    }

    @Override
    public void onDestroy() {

        // TODO Auto-generated method stub

        super.onDestroy();

        Toast.makeText(this, "MyAlarmService.onDestroy()", Toast.LENGTH_LONG)
                .show();

    }

    @Override
    public void onStart(Intent intent, int startId) {

        // TODO Auto-generated method stub

        super.onStart(intent, startId);

        Toast.makeText(this, "...", Toast.LENGTH_LONG)
        .show();

    }

    @Override
    public boolean onUnbind(Intent intent) {

        // TODO Auto-generated method stub

        Toast.makeText(this, "MyAlarmService.onUnbind()", Toast.LENGTH_LONG)
                .show();

        return super.onUnbind(intent);

    }

}

共 (1) 个答案

  1. # 1 楼答案

    你可以使用广播接收器和悬挂式帐篷。首先声明一个广播接收器:

    public class EventAlarmReceiver extends BroadcastReceiver {
    
    private long alarmTime;
    
    @Override
    public void onReceive(Context context, Intent intent1) {
    
        //declare the new time for the alarm, you can use a time stamp, for example in the next hour
        alarmTime = Calendar.getInstance().getTimeInMillis()+(60*60000); 
    
                //set an intent to the Receiver
        Intent intent = new Intent(context, EventAlarmReceiver.class);
    
                 //set an PendingIntent to the Intent
        PendingIntent pendingIntent = PendingIntent.getBroadcast(
                    getApplicationContext(), 234324243, intent, 0);
    
                //add to the System Alarm Manager
        AlarmManager alarmManager = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC, alarmTime, pendingIntent);
    }
    

    }

    并在活动中启动警报:

    Intent intent = new Intent(context, EventAlarmReceiver.class);
    
            PendingIntent pendingIntent = PendingIntent.getBroadcast(
                    getApplicationContext(), 234324243, intent, 0);
    
            AlarmManager alarmManager = (AlarmManager)   getSystemService(Activity.ALARM_SERVICE);
            alarmManager.set(AlarmManager.RTC, time, pendingIntent);