gpt4 book ai didi

android - 为什么通知在android通知栏中出现一段时间然后消失

转载 作者:太空宇宙 更新时间:2023-11-03 10:52:54 25 4
gpt4 key购买 nike

我正在使用 BroadCastReceiver ,其中接收 BOOT_COMPLETED 操作。收到这个广播后,AlarmManager 被设置,这个 AlarmManager 触发一个通知:广播接收器的代码:

package pit.opensource.events;

import java.util.Calendar;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class BootReciver extends BroadcastReceiver {

Context c;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub

// Intent i = new Intent(context,SetAlarmService.class);
// context.startService(i);
setAlarm(context);
Log.d("Alarm","Boot Reciver");

}
private void setAlarm(Context c){
Log.d("Alarm","Set alarm service--------------");
AlarmManager alarm = (AlarmManager)c.getSystemService(Service.ALARM_SERVICE);


Calendar cal = Calendar.getInstance();

cal.setTimeInMillis(System.currentTimeMillis());
cal.clear();
cal.set(2012,5,11,5,11);


Intent i = new Intent(c,ShowNotificationService.class);
PendingIntent pendingIntent = PendingIntent.getService(c, 12345,i, 0);

// alarm.set(AlarmManager.RTC_WAKEUP, dateNotif.getTime(), pendingIntent);
//alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
alarm.set(AlarmManager.RTC_WAKEUP, 5000, pendingIntent);


Log.d("Alarm","Alarm is alreday set*****************");

}


}

ShowNotificationService 的代码:

package pit.opensource.events;

import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class ShowNotificationService extends Service {

@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onStart(Intent intent,int startId){

Toast.makeText(getApplicationContext(), "Alaraaaaaaaam", Toast.LENGTH_LONG).show();
Log.d("Alarm","Notification Service");
showNotification();
}
private void showNotification(){
Intent i = new Intent(getApplicationContext(), DetailsActivity.class);

Toast.makeText(getApplicationContext(), "Dowanlod finished!", Toast.LENGTH_LONG).show();

int notificationID = 1;
NotificationManager nm = (NotificationManager) getSystemService(getApplicationContext().NOTIFICATION_SERVICE);

Log.d("Notification","Notification is set--------------------");
PendingIntent contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, i, 0);

CharSequence tickerText = "Alaraaaaaaaam!";
long when = System.currentTimeMillis();
int icon = R.drawable.ic_launcher;

Notification notification = new Notification(icon,tickerText,when);

CharSequence contentTitle = "Alarm Alarm Alarm Alarm !!";
CharSequence contentText = "Please click here to display more details";


notification.setLatestEventInfo(getApplicationContext(), contentTitle, contentText, contentIntent);

//---100ms delay, vibrate for 250ms, pause for 100 ms and
// then vibrate for 500ms---
notification.vibrate = new long[] { 100, 250, 100, 500}; // Needs vibrate permissions

nm.notify(notificationID, notification);
}
}

最佳答案

通知消失了,因为在 BroadcastReceiver 完成后,您的应用程序不再处于 Activity 状态。来自非 Activity 应用程序的通知会自动删除。

关于android - 为什么通知在android通知栏中出现一段时间然后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10544662/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com