android – 在新电子邮件到达时未通知MessageCountListener的服务

weixin_38053515 weixin_38053515 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我已经实现了一个服务,它可以检索收件箱并实现MessageCountListener接口,用于收听新的电子邮件到达.但是在新的电子邮件到达时,它不会收到通知!可能是什么原因以及还有什么可以做?这是代码: public class EmailRetreiverService extends Service implements MessageCountListener{ public static final Vector v=new Vector(); public static final Vector nwmsg=new Vector(); Message[] m=null; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate(){ Log.d("EmailRetreiverStarted"," "); ConvertToSmtp cts=new ConvertToSmtp("myemail@gmail.com","mypassword"," "," "," ", " "); Folder folder=cts.retreiveInbox(); try { m=folder.getMessages(); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } for(int i=0;i<m.length;i++){ v.add(m[i]); } Log.d("EmailRetreiverMessageCount",new Integer(m.length).toString()); Collections.reverse(v); /*folder.addMessageCountListener(new MessageCountAdapter(){ public void messagesAdded(MessageCountEvent ev) { Log.d("MessageListener","message listner invoked."); Message[] msgs = ev.getMessages(); TTSservice.say("Attention! "+msgs.length+" new messages have arrived now.Kindly retreive inbox again!"); Collections.reverse(v); for (int i = 0; i < msgs.length; i++) { v.add(msgs[i]); //System.out.println("Got " + msgs.length + " new messages"); } Collections.reverse(v); // Just dump out the new messages } });*/ folder.addMessageCountListener(this); } @Override public void onDestroy(){ v.removeAllElements(); } @Override public void messagesAdded(MessageCountEvent arg0) { // TODO Auto-generated method stub Log.d("EmailService","MessageArrived!"); } @Override public void messagesRemoved(MessageCountEvent arg0) { // TODO Auto-generated method stub Log.d("EmailService","MessageRemoved!"); } }必须注意的是,该服务已成功检索收件箱.但是没有得到通知.
...全文

相关推荐

Android中vim编辑器进阶的使用介绍

1. 移动指令    (1). h j k l, 方向键,记忆技巧:左右方向的是最左边和最右边的,j向下打了个勾,所以是向下键,剩下的k就是向上的键了。    (2). b, before,上一个单词(词首)           w, word,下一个单词(词首)           e,  end,下一个单词(词尾)    注意这些小写的命令由字母,点,数字,下划线划分,还有这三个对应的大写字母的命令,B,W,E,类似的意思,但是是以空格区分移动的。总而言之,大写的移动范围要大。    (3). gg 首行             G 尾行,这两个命令用的较多    (4). n%  跳到n

weixin_38590541

科技中介服务机构如何构建轻量化、易操作的数智化服务工具?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

政府科技管理者如何提升科技成果转化政策制定的科学性与精准性?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

产业园区运营负责人如何精准识别园区内潜在可转化科技成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

C++开发C++ Private访问控制示例4

内容概要:本文通过一个C++类“Calculator”的具体示例,展示了private访问控制在类成员函数中的应用。重点说明了私有成员函数(如validate)只能在类内部被调用,用于实现内部逻辑校验和数据保护,而不能被外部对象直接访问。公有成员函数(如add)则负责对外提供接口,并在内部调用私有函数完成合法性检查,从而实现了封装性和安全性。该示例清晰地体现了面向对象编程中信息隐藏的核心理念。; 适合人群:具备C++基础语法知识,理解类与对象概念的初学者或中级开发者,尤其适合正在学习封装和访问控制机制的学习者。; 使用场景及目标:①理解private关键字在成员函数中的作用;②掌握私有函数作为内部辅助工具的设计方法;③学习如何通过公有接口安全地访问和操作私有数据;④深入理解类的封装机制与访问控制规则。; 阅读建议:建议结合代码实例进行编译调试,尝试将validate函数改为public或protected,观察访问权限的变化,加深对C++访问控制的理解。同时可扩展此类,增加更多私有验证逻辑以强化实践能力。

Bert.Cai
评论 1
收藏 已收藏
分享
返回顶部