簡體   English   中英

狀態欄通知未顯示

[英]Status bar Notification not showing up

我有一個簡單的通知設置,應該在時間到時在狀態欄上顯示通知(基本上是剩余時間)。 我這樣設定時間:

Calendar cal = Calendar.getInstance();
        cal.set(2016, 0, 30, 10, 56, 00);
        alarmReceiver.setCredentials(NAME,PODCAST);
        setAlarm(cal);

setAlarm方法在此處給出:

private void setAlarm(Calendar target){

    Toast.makeText(c, "Reminder set", Toast.LENGTH_LONG).show();
    Intent intent = new Intent(getBaseContext(), AlarmReceiver.class);
    PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), req1, intent, 0);
    AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    alarmManager.set(AlarmManager.RTC_WAKEUP, target.getTimeInMillis(), pendingIntent);
}

這將調用AlarmReciever類,該類是:

  public class AlarmReceiver extends BroadcastReceiver {
static int notifyId=1;
String name="";
String disc="";
NotificationCompat.Builder notification;
PendingIntent pIntent;
NotificationManager manager;
Intent resultIntent;
TaskStackBuilder stackBuilder;
public void setCredentials(String n,String d){
    name=n;
    disc=d;
}

@Override
public void onReceive(Context context,Intent intent) {
    //Toast.makeText(context,"Alarm has been set",Toast.LENGTH_SHORT).show();
    Log.d("Midhun","onReceiver receiver...");
    notification = new NotificationCompat.Builder(context);
    //set title for NOTIFICATION
    notification.setContentTitle(name);
    //message in notification
    notification.setContentText(disc);
    //Alert shown when notification recieved
    notification.setTicker("INVENTO 16");
    notification.setSmallIcon(R.drawable.ic_notify);
    stackBuilder = TaskStackBuilder.create(context);
    stackBuilder.addParentStack(MainActivity.class);
    resultIntent = new Intent(context,MainActivity.class);
    stackBuilder.addNextIntent(resultIntent);
    pIntent = stackBuilder.getPendingIntent(0,PendingIntent.FLAG_UPDATE_CURRENT);
    notification.setContentIntent(pIntent);
    manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(10,notification.build());
    try {
        Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        Ringtone r = RingtoneManager.getRingtone(context, notification);
        r.play();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

問題在於通知未顯示。

我嘗試了以下方法:

1.我從AlarmReceiver類中打印了一條語句,看是否調用了該方法。消息在正確的時間顯示在控制台中(我在該行中設置的時間: cal.set(2016, 0, 30, 08, 56, 00); )即。 @ 2015年1月30日8:56。

2.也調用setAlarm時顯示的Toast。

所以基本上問題是我的AlarmReciever類。但是我無法弄清楚它是什么。

好吧,當我刪除語句stackBuilder.addParentStack(MainActivity.class);時,它開始為我工作stackBuilder.addParentStack(MainActivity.class);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM