我正在创建一个应用程序,我可以将约会添加到列表中。 如果附近有约会,我希望我的应用程序在某个小时的约会当天在状态栏中显示通知。
我使用了http://developer.android.com/guide/topics/ui/notifiers/notifications.html中的代码 创建我的通知。
但是,脚本中的“when”参数有点令人困惑,因为状态栏通知始终在调用时触发。 通知通知=新通知(icon,tickerText,when);
安排此类通知的最佳方式是什么? 似乎没有简单的方法,我必须创建一个服务,启动一个监听器活动与一个线程循环我的约会,并在日期适合当前日期时显示通知?
答案 0 :(得分:0)
但是,脚本中的“when”参数有点令人困惑 因为在调用时始终会触发状态栏通知。 通知通知=新通知(icon,tickerText,when);
确切地说 - 调用时会触发通知。如果您将变量设置为System.currentTimeMilis(),如示例所示,则表示 - 立即显示通知。 作为触发通知的内容,由您自行处理。活动似乎不是一个好的选择,但服务确实如此。在应用程序启动时初始化您的服务(并且不要忘记在应用程序退出时停止它),并让它执行“监听”并触发通知。它可能看起来像:
public class NotifyService extends Service {
private NotificationManager mNM;
@Override
public void onCreate() {
mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
//do some work, listen for change
if (triggerSatisfied) showNotification();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Override
public void onDestroy() {
// Cancel the persistent notification.
mNM.cancelAll();
}
@Override
public IBinder onBind(Intent arg0) {
return mBinder;
}
private final IBinder mBinder = new LocalBinder();
private void showNotification() {
//code for notification goes here
}
public class LocalBinder extends Binder {
NotifyService getService() {
return NotifyService.this;
}
}