【问题标题】:android timertask in specific date/time特定日期/时间的android timertask
【发布时间】:2012-01-09 11:25:38
【问题描述】:

嗯,我尝试用不同的方式提问:)

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

代码:

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 (eclip) 安装应用程序时通知都会激活,但如果我从移动设备启动应用程序,“下一个”通知将不会激活。也许我的应用程序不是服务,但我不想要服务,我想要在后台使用 timertask 的应用程序。

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

BR,科勒萨

【问题讨论】:

    标签: android datetime timertask


    【解决方案1】:

    我不确定你的意思。

    警报自动取款机会触发自动取款机,因为

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

    据我所知,它触发了警报

    【讨论】:

    • 如果你喜欢制作 2 个不同的警报,只需更改请求代码 PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);我只是在每次运行它时为请求代码随机编号
    猜你喜欢
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2011-05-03
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 2010-10-13
    相关资源
    最近更新 更多