从服务发送通知

时间:2014-09-10 16:35:25

标签: java android android-studio

如果我从Activity发送通知发送确实有效,但如果我从服务发送,则没有任何反应。谁能提出可能的解决方案?感谢

这是我的Service实施..........

public class MyService extends Service {

private NotificationManager notificationManager;
private DBHelper dbHelper;
private SQLiteDatabase db;
private Context mContext = this;

private int notificationID = 100;

@Override
public void onCreate() {
    Log.i("myLOgs", "Service: onCreate()");
    super.onCreate();
    dbHelper = new DBHelper(this);
    db = dbHelper.getWritableDatabase();
    notificationManager = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {

    Log.i("myLOgs", "Service: onStartCommand()");

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date date = new Date();
    String currentDateString = dateFormat.format(date);

    SimpleDateFormat timeFormat = new SimpleDateFormat("HH-mm");
    Date time = new Date();
    String currentTimeString = timeFormat.format(time);

    String[] columns = {DBHelper.DATE, DBHelper.TIME, DBHelper.EVENT};
    Cursor cursor = db.query(DBHelper.TABLE_NAME, columns, null, null, null, null, null);
    cursor.moveToFirst();
    do {
        String dateString = cursor.getString(cursor.getColumnIndex(DBHelper.DATE));
        String timeString  = cursor.getString(cursor.getColumnIndex(DBHelper.TIME));
        String eventString = cursor.getString(cursor.getColumnIndex(DBHelper.EVENT));
        boolean dateCompare = currentDateString.equals(dateString);
        boolean timeCompare = currentTimeString.equals(timeString);
        if((dateCompare) && (timeCompare)) {
            Notify(eventString, "message");
        }
        if(cursor.moveToLast()) {
            cursor.moveToFirst();
        }
    }while(true);

    //return super.onStartCommand(intent, flags, startId);
}

@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public void onDestroy() {
    super.onDestroy();
}



private void Notify(String notificationTitle, String bodytext){

    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    @SuppressWarnings("deprecation")

    Notification notification = new Notification(R.drawable.ic_launcher, "New Message", System.currentTimeMillis());

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

    notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, notificationID, notificationIntent, 0);

    notification.setLatestEventInfo(getApplicationContext(), notificationTitle, bodytext, pendingIntent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(notificationID++, notification);
}
}

0 个答案:

没有答案