PendingIntent不适用于Android O.(PendingIntent is not working on Android O)
我在我的申请中有下载通知。 我通过调用
addAction()
方法向NotificationCompat.Builder
添加了“Cancel”按钮。 但按钮无法在Android O设备上运行。 当我按“取消”按钮时没有任何反应。 但按钮在Android <O上工作。
我的Notification
:NotificationCompat.Builder notification = new NotificationCompat.Builder(context, channelId) .setContentTitle(title) .setSmallIcon(R.drawable.network_download) .setContentText(contentText) .setOngoing(true) .setContentIntent(null) .addExtras(idBundle) .addAction(R.drawable.cancel, context.getString(R.string.cancel), getCancelPendingIntent(context, id)) .setProgress(100, 30, true);
我的
PendingIntent
:private PendingIntent getCancelPendingIntent(Context context, int id){ return PendingIntent.getBroadcast( context, id, new Intent("CANCEL_DOWNLOAD").putExtra("id", id), PendingIntent.FLAG_UPDATE_CURRENT); }
我还有
NotificationReceiver
:public static class NotificationReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if ("CANCEL_DOWNLOAD".equals(action) && context != null){ int id = intent.getIntExtra("id", -1); NotificationManager mgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); if (mgr != null) mgr.cancel(id); FtpManager.getInstance(new AppExecutors(), CredentialsManager.getInstance().getCredentials(context)) .cancelDownloading(); } } }
在
Manifest
文件中我有:<receiver android:name="eu.warble.pjapp.util.NotificationsManager$NotificationReceiver" android:exported="false"> <intent-filter> <action android:name="CANCEL_DOWNLOAD" /> </intent-filter> </receiver>
I have download notification in my application. I've added "Cancel" button to
NotificationCompat.Builder
by callingaddAction()
method. But button not working on Android O device. When I press "Cancel" button nothing happens. But button working on Android < O.
MyNotification
:NotificationCompat.Builder notification = new NotificationCompat.Builder(context, channelId) .setContentTitle(title) .setSmallIcon(R.drawable.network_download) .setContentText(contentText) .setOngoing(true) .setContentIntent(null) .addExtras(idBundle) .addAction(R.drawable.cancel, context.getString(R.string.cancel), getCancelPendingIntent(context, id)) .setProgress(100, 30, true);
My
PendingIntent
:private PendingIntent getCancelPendingIntent(Context context, int id){ return PendingIntent.getBroadcast( context, id, new Intent("CANCEL_DOWNLOAD").putExtra("id", id), PendingIntent.FLAG_UPDATE_CURRENT); }
Also I have
NotificationReceiver
:public static class NotificationReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if ("CANCEL_DOWNLOAD".equals(action) && context != null){ int id = intent.getIntExtra("id", -1); NotificationManager mgr = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); if (mgr != null) mgr.cancel(id); FtpManager.getInstance(new AppExecutors(), CredentialsManager.getInstance().getCredentials(context)) .cancelDownloading(); } } }
In
Manifest
file I have :<receiver android:name="eu.warble.pjapp.util.NotificationsManager$NotificationReceiver" android:exported="false"> <intent-filter> <action android:name="CANCEL_DOWNLOAD" /> </intent-filter> </receiver>
原文:https://stackoverflow.com/questions/46549109
最满意答案
显然,您的计算机上没有本地运行的telnet服务器。
要了解telnet命令的工作原理,您可以执行下一步:
telnet debra.dgbt.doc.ca
telnet example.com 80
Apparently you don't have telnet server running locally, at your machine.
To have a look how telnet command works, you could do next:
telnet debra.dgbt.doc.ca
telnet example.com 80
相关问答
更多-
telnet的守护进程xinetd已经启动[2022-03-09]
telnet是需要配置权限的, sudo vi /etc/xinetd.conf并加入以下内容: # Simple configuration file for xinetd # # Some defaults, and include /etc/xinetd.d/ defaults { # Please note that you need a log_type line to be able to use log_on_success # and log_on_failure. The default ... -
如何将文件提供给telnet(how to feed a file to telnet)[2021-04-28]
telnet不是这份工作的正确工具。 尝试: netcat localhost 80sudo tcpdump -i lo sudo tcpdump -i lo这听起来像程序绑定到特定的IP地址或网络接口。 运行netstat -tnlp | grep :1099 netstat -tnlp | grep :1099 ,你可能会看到它正在监听一个非回送接口。 如果您可以指示应用程序侦听0.0.0.0 (IPv4通配符地址),则可以从机器上的任何网络接口访问它。 It sounds like the program is binding to a specific IP address or network interface. Run netstat -tnlp ...到本地主机的数据包不会“通过线路”; 即,数据包被发送到网络驱动程序本地接收缓冲区。 如果你telnet到本地服务器IP,那么数据包就会通过网络传输。 例如telnet 192.168.100.1会使数据包在线路上传输。 The packets to localhost do NOT 'go out on wire'; i.e. the packets are send to receive buffers locally by the network driver. IF you telnet to lo ...几乎可以肯定,Symantec End Point Protection会导致问题。 可能你的大学不希望你运行自己的邮件服务器。 It's almost certainly Symantec End Point Protection that is causing the problem. Probably your university doesn't want you running your own mail server.让SSH登录会话重定向到交互式telnet到localhost(Have SSH login session redirect to interactive telnet to localhost instead)[2022-02-14]
将Telnet限制为本地连接听起来像一个好的计划,特别是如果您不想触摸代码。 但是,步骤2和3是不必要的。 一旦建立连接,就可以在远程shell中调用“telnet”命令。 这可以通过在用户的主目录中创建.ssh / rc脚本来自动完成。 但是,这种方法的一个潜在问题是Telnet控制序列可能无法正确通过。 因此,另一种方法是使用端口转发通过安全SSH连接来隧道连接Telnet。 使用此策略,您将继续在客户端和服务器上运行Telnet,但连接使用SSH加密。 要设置它,请像这样调用SSH客户端: ssh - ...我找到了这个问题的答案。 实际上在android模拟器hw.battery = no的config.xml中,它应该是hw.battery = yes。 这就是为什么我的android模拟器崩溃的问题。 I found out answer for this question. Actually in the config.xml of the android emulator hw.battery=no , it should be hw.battery=yes. That was the problem ...显然,您的计算机上没有本地运行的telnet服务器。 要了解telnet命令的工作原理,您可以执行下一步: telnet debra.dgbt.doc.ca telnet example.com 80 Apparently you don't have telnet server running locally, at your machine. To have a look how telnet command works, you could do next: telnet debra.dgbt.doc ...python程序看起来不错。 来自telnet的错误看起来像你一直在尝试使用类似SSH的命令行进行连接。 $ telnet localhost:50007 与SSH不同,Linux的telnet客户端不使用:语法进行连接。 尝试, $ telnet localhost 50007 如果您的套接字出现问题,telnet将返回“拒绝连接”或类似状态。 您可以验证服务器是否已正确初始化并使用以下方法侦听指定的端口: $ netstat -an | grep 50007 如果netstat返回类似下面的行,那么您的 ...相关文章
更多- O2O
- 传阿里整合资源,进军O2O市场
- 玩电商?O2O才是微信想要的
- Lua 文件 I/O 操作
- Groovy 文件I/O 操作详解
- 烧烤摊如何走O2O之路 微博微信运营案例分享
- 《O'Reilly计算机图书2013年8月合集》(O'Reilly Books Collection)英文文字版/EPUB/下载链接见资源介绍[PDF]
- WiFi入口流量O2O微应用平台
- Hadoop的I/O
- 为什么说“微信没有这三条腿,很难切入o2o的茂密区?
最新问答
更多- 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
- 如何通过引用返回对象?(How is returning an object by reference possible?)
- 矩阵如何存储在内存中?(How are matrices stored in memory?)
- 每个请求的Java新会话?(Java New Session For Each Request?)
- css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
- 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
- xcode语法颜色编码解释?(xcode syntax color coding explained?)
- 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
- 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
- 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
- 西安哪有PLC可控制编程的培训
- 在Entity Framework中选择基类(Select base class in Entity Framework)
- 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
- 电脑二级VF有什么用
- Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
- 金华英语角.
- 手机软件如何制作
- 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
- 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
- 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
- Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
- 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
- python的访问器方法有哪些
- DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
- 在Ruby中对组合进行排序(Sorting a combination in Ruby)
- 网站开发的流程?
- 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
- 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
- 透明度错误IE11(Transparency bug IE11)
- linux的基本操作命令。。。