我想创建一个闹钟应用程序,当您设置时间时,闹钟应用程序会发出警报。我已经部分工作了。通过最近的托盘关闭应用程序后,我卡在未设置的闹钟中(不是强制停止)。为了解决这个问题,我创建了一个将在后台运行的服务(即使应用程序已关闭),并会发出警报。关闭应用程序后,服务不会启动报警
我现在的问题是,即使使用服务后,我无法在应用程序关闭后响起警报。然而,该服务似乎在应用程序关闭后运行(我在运行应用程序中看到过,它说我的应用程序有一个在后台运行的服务)。
注意:我还将服务与我的活动绑定,以便我可以使用它的方法。
注意2:服务在应用程序打开时会发出警报,只有在应用程序关闭时才会发出警报。
这是我的代码:
调用从我的活动服务:
public void startOnClick(View view) {
int aHour = alarmTimePicker.getCurrentHour();
int aMin = alarmTimePicker.getCurrentMinute();
Alarms alarm = new Alarms(aHour, aMin); //I've created an Alarms class Seperately
myService.setAlarm2(alarm); //Setting the alarm via service
Toast.makeText(this, "Alarm SET.", Toast.LENGTH_LONG).show();
}
在为MyService:`包com.wars.tap.tapwars;
公共类的MyService延伸服务{
private final IBinder myBinder = new MyBinder();
Alarms alarm = new Alarms();
private PendingIntent pendingIntent;
private AlarmManager alarmManager;
private ServiceCallBacks serviceCallbacks;
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
return myBinder;
}
public class MyBinder extends Binder {
MyService getService() {
return MyService.this;
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
public void setCallbacks(ServiceCallBacks callbacks) {
serviceCallbacks = callbacks;
}
public void setAlarm2(final Alarms alarm){
Runnable r = new Runnable() {
@Override
public void run() {
try {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, alarm.get_hour());
calendar.set(Calendar.MINUTE, alarm.get_min());
AlarmManager AM = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(MyService.this, AlarmReceiver.class);
i.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
pendingIntent = PendingIntent.getBroadcast(MyService.this, 934, i, PendingIntent.FLAG_UPDATE_CURRENT);
AM.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
} catch (Exception e) {
}
}
};
Thread t = new Thread(r);
t.start();
}
}
`
所以,setAlarm2是我使用的服务发出警报的方法。它在应用程序打开时工作,但在应用程序关闭时无法工作。正如你所看到的,这是我在StackOverflow上的第一篇文章,也是我对android编程的新手。我一直坚持这个很长一段时间,并会感谢一些帮助。谢谢。
我已经有一个AlarmService类来发送和管理通知。它在AlarmReceiver类中调用。 –
现在暂时停留了一段时间。任何帮助? –
嗨@ S.A.Nik我有同样的问题你有没有找到任何解决方案? –