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,但没有。我无法复制您的问题。请提供您启动服务的代码。谢谢,但情况并非如此。谢谢,但情况并非如此