大佬教程收集整理的这篇文章主要介绍了Android:捕获应用程序退出,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
notificationmanager = (notificationmanager) activity.getSystemservice(Activity.NOTIFICATION_serviCE); Intent intent = new Intent(activity,MyActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOp); PendingIntent pendingIntent = PendingIntent.getActivity(activity,intent,0); notification = new Notification(); notification.icon = android.R.drawable.stat_notify_sync; notification.flags |= Notification.FLAG_ONGOING_EVENT; String title = activity.getString(R.String.notification_titlE); String text = activity.getString(R.String.notification_text); notification.setLatestEvenTinfo(activity,title,text,pendingIntent);
这工作正常.稍后,如果用户停止所有声音,我使用notificationmanager.cancel删除通知,再次,这工作正常.
我的问题是我想处理某人使用任务杀手应用程序的情况.如果有人使用其中一个来杀死我的应用,我希望从状态栏中删除通知图标.我知道有很多用户喜欢使用这些应用程序,我不想让一些人抱怨他们无法“关闭”我的应用程序!
到目前为止,我还没有能够检测到应用程序即将退出的时间.我试过这个:
Thread.currentThread().setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread,Throwable eX) { notificationmanager.cancel(NOTIFICATION_ID); } });
而且这个:
Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { notificationmanager.cancel(NOTIFICATION_ID); } });
但这不起作用.当我的应用程序被杀死时,通知图标仍然存在.要杀死我的应用程序,我一直在使用名为“高级任务杀手”的应用程序.我也通过在DDMS中杀死我的进程来测试.
我注意到原生媒体播放器正@L_696_21@样做.如果正在播放音乐并且您终止音乐服务,则图标将消失.
那么,有没有办法检测应用程序何时即将退出,以便我可以删除通知图标?或者,如果我的应用程序被杀,是否有办法自动删除通知图标?
谢谢!
你正在使用第一种类型.它是应用程序(或系统)发送的通知,其目标是向用户提供一些信息.示例:新邮件到达,低存储空间,我的帖子上的新@L_673_36@.
这些是用户理论上想要检查的所有信息,它应该保持在那里,直到用户点击它以查看详细信息(如果有的话)或决定删除它们删除所有留下的通知.
我将从documentation开始讨论前台服务
您在问题中提到的音乐应用就是这种情况.音乐应用内部的播放器部分实现为前台服务.当用户选择歌曲并播放它时,通过应用UI,服务开始(并且图标出现在通知栏中)并且歌曲再现开始并且它可以独立于UI本身继续.当歌曲结束或用户停止再现时,图标将在服务(应该)停止时消失.
以上是大佬教程为你收集整理的Android:捕获应用程序退出全部内容,希望文章能够帮你解决Android:捕获应用程序退出所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。