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);
}
在getCurrentTime中,它必须返回String但
alarmManager.set(AlarmManager.RTC,Long.parseLong(getCurrentTime()), pendingIntent); is only get for Long. Is that Another way. Help Plz.
答案 0 :(得分:0)
更改
public String getCurrentTime()
到
public long getCurrentTime()
并返回c.getTime().getTime()
。这将返回milliSeconds
中的当前时间。您可以操纵Calendar
实例以获得所需的时间。
答案 1 :(得分:0)
也许这样写:
long triggerTime = System.currentTimeMillis();
alarmManager.set(AlarmManager.RTC, triggerTime, pendingIntent);
答案 2 :(得分:0)
您无法将格式化时间解析为long。您需要再次使用格式化程序解析字符串以获取时间。
因此,在将时间设置为闹钟管理器之前,您需要创建另一个SimpleDateFormat对象。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
现在
alarmManager.set(AlarmManager.RTC,(sdf.parse(getCurrentTime())).getTime(), pendingIntent);