如何创建一个从开始到结束时设置的手表

时间:2011-11-03 11:52:33

标签: android android-widget

我不知道如何设置时间开始结束的时间。就像你在日历中设置的那样,你设置从开始到结束在java中的时间。有人可以帮我请求吗?

2 个答案:

答案 0 :(得分:0)

使用Timer和TimerTask的组合:

TimerTask task = new TimerTask() {
    @Override
    public void run() {
  // do stuff 
    }
};
Timer timer = new Timer();
timer.schedule(task, /*when*/);

请参阅schedule()

答案 1 :(得分:0)

您可以在Android中使用AlarmManager来执行此类任务。请记住在Broadcast Receiver中注册AndroidManifest.xml,以便您可以正确使用下面提到的代码:

对于实际示例,下面提到的代码段将广播和特定于我的应用程序的意图。我将获取意图并启动后台服务,该服务执行我的应用程序特定功能。喜欢:

Intent intent = new Intent(this, ServiceStarter.class);
    PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);

long scheduledTime = System.currentTimeMillis() + AlarmManager.INTERVAL_FIFTEEN_MINUTES;
        AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        alarmManager.set(AlarmManager.RTC_WAKEUP, scheduledTime,
                sender);

在我的ServiceStarter里面,我会做这样的事情:

    public class ServiceStarter extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent serviceIntent;
        serviceIntent = new Intent(context, ActualService.class);
        context.startService(serviceIntent);

    }
}

为了关闭任务AlarmManager代码的类似行只会在我们需要停止服务的ServiceStopper中执行:

public class ServiceStopper extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent serviceIntent;
        serviceIntent = new Intent(context, ActualService.class);

        context.stopService(serviceIntent);
    }
}

如果您还需要其他内容,请恢复。