我有一个intentservice,当myDataBsae中找到值时通知但是如果data为null则不应该通知我,所以
我的服务是:
public class ShowTimeServer extends IntentService {
NotificationManager nm;
static final int uniqueID=326534;
public ShowTimeServer() {
super("ShowTimeServer");
// TODO Auto-generated constructor stub
}
/* (non-Javadoc)
* @see android.app.IntentService#onHandleIntent(android.content.Intent)
*/
@Override
protected void onHandleIntent(Intent arg0) {
// TODO Auto-generated method stub
ShowTimeDB RetrieverDB =new ShowTimeDB(this);
RetrieverDB.open();
String data = RetrieverDB.getShowNotify();
RetrieverDB.close();
if (!(data.equals(null))){
nm=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Intent intent=new Intent(this,TodayShow.class);
PendingIntent pi= PendingIntent.getActivity(this, 0, intent, 0 );
CharSequence x=(CharSequence) data;
Notification n=new Notification(R.drawable.ic_launcher,"YOU HAVE SHOW" ,System.currentTimeMillis());
n.setLatestEventInfo(this, "ShowTime", x, pi);
n.defaults=Notification.DEFAULT_ALL;
nm.notify(uniqueID,n);
//pi.cancel();
//nm.cancel(uniqueID);
}
}
}
答案 0 :(得分:0)
intentService不应该每隔X秒执行一次。为此,还有很多其他解决方案。如果您坚持使用服务执行此任务,您可以将其设置为正常的前台/后台服务(取决于您是否希望在用户离开应用程序时执行此操作)然后在那里进行。
intentService已经在不同的线程上运行。这就是你可以对onHandleIntent方法进行长时间操作的原因。