如何解决setAction如何以明确的意图工作?
我正在编写一个倒数计时器应用程序,当您在计数运行时离开该应用程序时会创建一个通知。我发现的问题是,当您在应用切换器中滑动应用时,通知消失了。
我正在尝试尝试this solution,并且正在努力了解启动服务的方式:
Intent startIntent = new Intent(getApplicationContext(),MyService.class);
startIntent.setAction(C.ACTION_START_SERVICE);
startService(startIntent);
第一行指定了意图的目标类(MyService.class),因此看来我们正在使用显式意图。
但是,在第二行中,使用setAction将动作与该意图相关联,根据我的研究,这是您在使用隐式意图时(当您希望系统处理特定任务(例如,打开时))执行的操作电子邮件,浏览器,条形码阅读器-...,但不依赖于特定程序)。但是,我还没有发现关于适用于显式意图的setAction的任何信息。
此代码中的用法似乎表明C.ACTION_START_SERVICE是某种“标志”,相应的服务在此方法中对其进行检查:
@Override
public int onStartCommand(Intent intent,int flags,int startId) {
if (intent != null && intent.getAction().equals(C.ACTION_START_SERVICE)) {
startServiceWithNotification();
}
else stopMyService();
return START_STICKY;
}
有人可以确认我的工作原理吗?另外,如果我是对的,而且这是一个标志性的事情,那么是否仅使用intent.putExtra就能以更传统的方式实现?谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。