Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何创建后台通知_Android_Android Notifications - Fatal编程技术网

Android 如何创建后台通知

Android 如何创建后台通知,android,android-notifications,Android,Android Notifications,我想实现一个服务,允许显示通知(每天或XX分钟后),即使我关闭应用程序。(实际上,当我按下后退按钮时,我完成了主要活动…) 即使我没有启动应用程序,我也需要一个可运行的通知(例如,在重新启动设备之后,当然是在触发器被取消切换时) 我尝试了一些清晰的例子和教程,但没有找到我需要的 请帮忙 提前感谢,, 穆罕默德您可以使用报警管理器: public class AlarmHelper { private Context context; private AlarmManager alarmMana

我想实现一个服务,允许显示通知(每天或XX分钟后),即使我关闭应用程序。(实际上,当我按下后退按钮时,我完成了主要活动…)

即使我没有启动应用程序,我也需要一个可运行的通知(例如,在重新启动设备之后,当然是在触发器被取消切换时)

我尝试了一些清晰的例子和教程,但没有找到我需要的

请帮忙

提前感谢,,
穆罕默德

您可以使用报警管理器:

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.

我的解决方案是否有效?否。。。不完全是我想要的