android timertask在特定的日期/时间

时间:2012-01-09 11:25:38

标签: android datetime timertask

嗯,我试着以不同的方式提问:)

我在特定日期/时间(日期类)中将激活通知的代码编写为本地(本地变量)。当我激活通知时,我会用新的日期/时间创建一个新的通知。

代码:

private void createNotification(final String contentTitle, final String contentText,
        final String tickerText) {

    calculateVakat();
    setFirstMillis(getNextVakat());

    createStatusBarNotification(contentTitle, contentText, tickerText);

    Notification note = new Notification(android.R.drawable.btn_star_big_on, tickerText, System.currentTimeMillis());

    PendingIntent intent = PendingIntent.getActivity(this, 0, new Intent(this, VaktijaActivity.class), 0);

    note.setLatestEventInfo(this, contentTitle, contentText, intent);

    note.vibrate = new long[] {500L, 200L, 200L, 500L};
    note.defaults |= Notification.DEFAULT_SOUND;

    note.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(NOTIF_ID, note);
}

private void createStatusBarNotification(final String contentTitle,
        final String contentText, final String tickerText) {

    Date date = new Date(getFirstMillis());
    Log.i("date", date.toString());
    Timer timer = new Timer();
    TimerTask timerTask = new TimerTask() {
        @Override
        public void run() {
            createNotification(contentTitle, contentText, tickerText);
        }
    };
    timer.schedule(timerTask, date);
}

在这种情况下,每次从我的PC(eclipe)安装应用程序时,通知都处于活动状态,但如果我从移动设备启动应用程序,则“下一步”通知将不会处于活动状态。也许我的应用程序不是服务,但我不想要服务,我想要在后台使用timertask的应用程序。

如果我必须提供服务,我该怎么做?

BR,Kolesar

1 个答案:

答案 0 :(得分:0)

我不确定你的意思。

警报atm将触发您正在发出警报,因为

Notification note = new Notification(
        android.R.drawable.btn_star_big_on, tickerText,
        System.currentTimeMillis());

你想让用户输入你转换成毫秒的时间然后你说当前时间 - 用户时间

然后当你触发时你不想启动活动的闹钟?

Intent notificationIntent = new Intent(this,MyActivity.class);

关闭工作

我不确定你是否需要这行代码

notificationManager.notify(NOTIF_ID, note);

因为我记得它会引发警报