Android 能否为字符串设置alarmManager.set get

Android 能否为字符串设置alarmManager.set get,android,alarmmanager,Android,Alarmmanager,在getCurrentTime中,它必须是返回字符串,但 public String getCurrentTime(){ Calendar c= Calendar.getInstance(); Log.i("Calander getinstance",Calendar.getInstance()+""); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss "); String str

在getCurrentTime中,它必须是返回字符串,但

 public String getCurrentTime(){
    Calendar c= Calendar.getInstance();
    Log.i("Calander getinstance",Calendar.getInstance()+"");
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
    String strDate = sdf.format(c.getTime());
    return strDate;
}

public void alert()
{
      Calendar cal = Calendar.getInstance();
      Intent myIntent = new Intent(MainActivity.this, myReceiver.class);
      PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent,0);
      AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
      alarmManager.set(AlarmManager.RTC,Long.parseLong(getCurrentTime()), pendingIntent);
}
改变

alarmManager.set(AlarmManager.RTC,Long.parseLong(getCurrentTime()), pendingIntent); is only get for Long. Is that Another way. Help Plz.

并返回
c.getTime().getTime()
。这将以
毫秒为单位返回当前时间。您可以操纵
日历
实例来获得所需的时间。

可以这样写:

public long getCurrentTime()

您无法将格式化的时间解析回long。您需要使用格式化程序再次解析字符串以获取时间

因此,在设置alarmmanager的时间之前,需要创建另一个SimpleDataFormat对象

long triggerTime = System.currentTimeMillis();
alarmManager.set(AlarmManager.RTC, triggerTime, pendingIntent);
现在呢

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");

我想得到“YYYY-MM-DD HH:MM:SS”格式。所以我不能把字符串改为Long。那么,我可以在alarm manager中做一些更改吗?您需要扩展
AlarmManager
类并执行自己的自定义实现,但最终
AlarmManager
将只接受
long
value.PHP返回“YYYY-MM-DD HH:MM:SS”格式。字符串返回。因此,我将当前时间更改为该格式。如果Alarm Manager只会变长,我将遇到一个问题。使用
SimpleDataFormat
解析从PHP返回的
String
,它将返回
Date
对象,然后使用该对象以
毫秒
的方式获取时间?给一个向导。。。为什么要字符串返回“YYYY-MM-DD HH:MM:SS”格式。字符串返回。因此,我将当前时间更改为该格式。如果报警管理器只长一点,我就有麻烦了。对不起。我看不到你的答案。它在哪里?好的,我知道了。现在,我正在努力。我有一个问题。我可以在我的应用程序完全关闭时显示通知吗。
 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
 alarmManager.set(AlarmManager.RTC,(sdf.parse(getCurrentTime())).getTime(), pendingIntent);