Android 如何创建后台通知
我想实现一个服务,允许显示通知(每天或XX分钟后),即使我关闭应用程序。(实际上,当我按下后退按钮时,我完成了主要活动…) 即使我没有启动应用程序,我也需要一个可运行的通知(例如,在重新启动设备之后,当然是在触发器被取消切换时) 我尝试了一些清晰的例子和教程,但没有找到我需要的 请帮忙 提前感谢,,Android 如何创建后台通知,android,android-notifications,Android,Android Notifications,我想实现一个服务,允许显示通知(每天或XX分钟后),即使我关闭应用程序。(实际上,当我按下后退按钮时,我完成了主要活动…) 即使我没有启动应用程序,我也需要一个可运行的通知(例如,在重新启动设备之后,当然是在触发器被取消切换时) 我尝试了一些清晰的例子和教程,但没有找到我需要的 请帮忙 提前感谢,, 穆罕默德您可以使用报警管理器: public class AlarmHelper { private Context context; private AlarmManager alarmMana
穆罕默德您可以使用报警管理器:
public class AlarmHelper {
private Context context;
private AlarmManager alarmManager;
private static final String TAG = "AlarmHelper";
public final static String ALARM_ALERT_ACTION = "com.android.alarmclock.ALARM_ALERT";
public AlarmHelper(Context context) {
this.context = context;
alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
}
public void setNotifyAlarm(Long milliSecond) {
PendingIntent pendingIntent = getNotifyPendingIntent();
alarmManager.cancel(pendingIntent);
alarmManager.set(AlarmManager.RTC_WAKEUP, milliSecond, pendingIntent);
// alarmManager.set(AlarmManager.RTC_WAKEUP, milliSecond, sender);
}
public void cancelNotifyAlarm() {
PendingIntent pendingIntent = getNotifyPendingIntent();
alarmManager.cancel(pendingIntent);
}
private PendingIntent getNotifyPendingIntent() {
Intent intent = new Intent(context, AlarmExpireService.class);
return PendingIntent.getService(context, 0, intent, 0);
}
public void setExpireAlarm(int minute) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MINUTE, minute - 1);
PendingIntent pendingIntent = getExpirePendingIntent();
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
pendingIntent);
}
public void cancelExpireAlarm() {
PendingIntent pendingIntent = getExpirePendingIntent();
alarmManager.cancel(pendingIntent);
}
private PendingIntent getExpirePendingIntent() {
return PendingIntent.getService(context, 0, new Intent(context,
AlarmExpireService.class), 0);
}
}
现在在AlarmExpireService.java中:
public class AlarmExpireService extends Service {
// private static final String TAG = "AlarmExpireService";
private static final String TAG = "AlarmExpireService";
@Override
public void onCreate() {
super.onCreate();
//your logic for start activity or generate notification.
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
AppLog.Log(TAG, "On start command");
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
现在在清单文件中注册服务:
<service android:name="your_package.AlarmExpireService" />
例如,只需从AlarmHelper的setNotifyAlarm方法调用一个方法,您的工作就完成了,并以毫秒为单位传递时间(它将在该时间之后启动,并弹出通知)
有关更多信息,请参考以下链接:
1.
2.
3.我的解决方案是否有效?否。。。不完全是我想要的