android后台运行时弹出正在运行通知(类似QQ效果)
2013-01-24 15:20
357 查看
对于一些应用要求应用没有完全退出的情况下在后台运行时要弹出通知以方便用户进入软件。例如QQ就在退到后台的时候弹出正在运行的提示通知。
初步总结实现这种效果可以有一下三种方式:
1、可以监听onstop()方法。因为如果应用退到后台必然会执行onstop()方法,而在应用内间的跳转如果没有执行finish()的话页面通常只会执行onpause()方法,除非内存严重不足导致系统回收掉了后台页面。但由于应用内一些操作比如调用系统相机、图库等操作由于切换了程序(图库是系统程序)所以也会执行onstop()导致要加以过滤还有一些特殊操作难以把控所以实用性不强。但一般的需求是可以满足的。
2、可以监听home键和主页面(即你的activity任务栈的栈底activity也即程序的入口页面)监听back键。在监听事件中做相关的操作比如显示通知等操作。但是由于home键默认无法监听,只有页面时键盘类型的页面才能监听到home键所以必须更改页面的类型。如下:
这样就会在一些页面出现问题因为这是页面的类型被更改了还有就是即使这样也不能保证所以手机和android版本都能监听到所以也有风险。常用机型可以android2.2可以监听。
3、通过启动后台服务实时监听系统进程栈的动态获取当前前台进程是否是自己应用的进程。该方式可靠但要启动服务,对于一个本没有必要启动后台服务的程序,这本来就是很纠结的事情。为了一个后台通知去开启一个服务也会让用户浮想联翩。下面是精华代码:
?
判断是否在前台:
?
初步总结实现这种效果可以有一下三种方式:
1、可以监听onstop()方法。因为如果应用退到后台必然会执行onstop()方法,而在应用内间的跳转如果没有执行finish()的话页面通常只会执行onpause()方法,除非内存严重不足导致系统回收掉了后台页面。但由于应用内一些操作比如调用系统相机、图库等操作由于切换了程序(图库是系统程序)所以也会执行onstop()导致要加以过滤还有一些特殊操作难以把控所以实用性不强。但一般的需求是可以满足的。
2、可以监听home键和主页面(即你的activity任务栈的栈底activity也即程序的入口页面)监听back键。在监听事件中做相关的操作比如显示通知等操作。但是由于home键默认无法监听,只有页面时键盘类型的页面才能监听到home键所以必须更改页面的类型。如下:
3、通过启动后台服务实时监听系统进程栈的动态获取当前前台进程是否是自己应用的进程。该方式可靠但要启动服务,对于一个本没有必要启动后台服务的程序,这本来就是很纠结的事情。为了一个后台通知去开启一个服务也会让用户浮想联翩。下面是精华代码:
?
?
相关文章推荐
- 【Android实现程序前后台切换效果】(一)android后台运行时弹出正在运行通知的三种方式对比
- Android实现程序前后台切换效果(类似QQ后台运行)
- Android实现程序前后台切换效果(类似QQ后台运行)
- Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”
- Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”
- Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”
- Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”
- Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”
- Android中实现“程序前后台切换效果”和“返回正在运行的程序,而不是一个新Activity”
- Android按返回键程序仍在后台运行,并未完全退出和销毁,类似微信QQ等退出方式的实现-- moveTaskToBack
- Android中实现类似qq好友列表展开收起的效果
- Android判断app是否后台运行中,后台运行通知栏提示
- Android能否实现一键清理后台程序后程序自启动(类似QQ微信不被清理软件杀死)
- Android类似QQ弹窗效果
- android开发之让Android点击通知栏信息后返回正在运行的程序
- 如何检查Android后台服务线程(Service类)是否正在运行
- Android按返回键退出程序但不销毁,程序后台运行,同QQ退出处理方式
- 如何检查后台服务(Android的Service类)是否正在运行?
- winForm窗体关闭按钮实现托盘后台运行(类似QQ托盘区运行)
- android expandablelistview--实现类似qq界面的效果