Android - 通知pendingIntent to Stop Service

时间:2016-12-28 09:44:15

标签: java android android-notifications android-pendingintent

我有两个通知操作,一个用于停止服务,另一个用于重新启动服务。 我正在成功启动该服务,但我无法使用此代码阻止它:

PendingIntent show = PendingIntent.getService(this, 1, svc, PendingIntent.FLAG_UPDATE_CURRENT);
PendingIntent hide = PendingIntent.getService(this, 1, svc, PendingIntent.FLAG_CANCEL_CURRENT);

有什么想法吗?

不重复,因为我的问题是关于通知操作,而不是按钮(我没有问题让我的按钮停止并启动服务)。

1 个答案:

答案 0 :(得分:4)

仅靠那面旗帜不会停止服务。我建议您执行停止操作,而不是触发自定义BroadcastReceiver类,该类在stopService()内运行onReceive()方法。如果您需要帮助我更详细地设置类似的东西,请告诉我。

编辑回答:

将隐藏操作的IntentPendingIntent更改为:

Intent intentHide = new Intent(this, StopServiceReceiver.class);

PendingIntent hide = PendingIntent.getBroadcast(this, (int) System.currentTimeMillis(), intentHide, PendingIntent.FLAG_CANCEL_CURRENT);

然后像这样StopServiceReceiverServiceYouWantStopped.class是要停止的服务:

public class StopServiceReceiver extends BroadcastReceiver {
    public static final int REQUEST_CODE = 333;

    @Override
    public void onReceive(Context context, Intent intent) {
        Intent service = new Intent(context, ServiceYouWantStopped.class);
        context.stopService(service);
    }
}

确保您在清单文件中声明了您刚刚创建的BroadcastReceiver

<receiver
    android:name=".StopServiceReceiver"
    android:enabled="true"
    android:process=":remote" />

希望这有帮助!