Android-悬而未决的通知以停止服务



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

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

有什么想法?

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

单独的标志不会停止服务。我建议您进行停止操作,而是触发一个自定义的BroadcastReceiver类,该类在其onReceive()的内部运行stopService()方法。让我知道您是否需要更详细地设置类似的帮助。

编辑答案:

将您的 IntentPendingIntent更改为hide动作:

Intent intentHide = new Intent(this, StopServiceReceiver.class);
PendingIntent hide = PendingIntent.getBroadcast(this, (int) System.currentTimeMillis(), intentHide, PendingIntent.FLAG_CANCEL_CURRENT);

然后将StopServiceReceiver这样做,其中ServiceYouWantStopped.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" />

希望这会有所帮助!

相关内容

  • 没有找到相关文章

最新更新