Android AlarmManager从棉花糖及更高版本中的服务启动时失败
我试图在服务中设置一个简单的报警管理器 测试用例。 如果我从一个活动启动报警管理器,它会工作Android AlarmManager从棉花糖及更高版本中的服务启动时失败,android,alarmmanager,Android,Alarmmanager,我试图在服务中设置一个简单的报警管理器 测试用例。 如果我从一个活动启动报警管理器,它会工作 Intent intentzz = new Intent(getApplicationContext(), Homev2.class); PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 0, intentzz, PendingIntent.FLAG_CANCEL_CURRENT); Ca
Intent intentzz = new Intent(getApplicationContext(), Homev2.class);
PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 0, intentzz, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 5);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pi);
但是,如果我尝试从一个服务启动同一个服务,它就不会启动,我也不会得到任何错误
public class MyService extends Service {
public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
// throw new UnsupportedOperationException("Not yet implemented");
return null;
}
@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.e("we here", "here");
Intent intent1 = new Intent(getApplicationContext(), SettingsActivity.class);
PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 1,intent1, 0);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MINUTE, 5);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pi);
return super.onStartCommand(intent, flags, startId);
}
}
可能是什么问题?尝试更改此选项:
Intent intent1 = new Intent(getApplicationContext(), SettingsActivity.class);
PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 1,intent1, 0);
为此:
Intent intent1 = new Intent(this, SettingsActivity.class);
PendingIntent pi = PendingIntent.getActivity(this, 1,intent1, 0);
尝试更改此选项:
Intent intent1 = new Intent(getApplicationContext(), SettingsActivity.class);
PendingIntent pi = PendingIntent.getActivity(getApplicationContext(), 1,intent1, 0);
为此:
Intent intent1 = new Intent(this, SettingsActivity.class);
PendingIntent pi = PendingIntent.getActivity(this, 1,intent1, 0);
您将意向发送到哪个类?代码中的SettingsActivity.classabove@amitavaOk,我没有得到什么;什么是Homev2.class,您要在活动中发送意图?第一个代码打开一个Home2.class活动,工作正常。服务中的第二个代码应该打开SettingsActivity,但没有。我无法复制您的问题。请提供启动服务的代码。您要将意图发送到哪个类?代码中的SettingsActivity.classabove@amitavaOk,我没有得到什么;什么是Homev2.class,您要在活动中发送意图?第一个代码打开一个Home2.class活动,工作正常。服务中的第二个代码应该打开SettingsActivity,但没有。我无法复制您的问题。请提供您启动服务的代码。谢谢,但情况并非如此。谢谢,但情况并非如此