可以使用alarmManager.set获取String

时间:2013-12-12 06:25:52

标签: android alarmmanager

 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.

3 个答案:

答案 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);