javaee 后台 面试题能不能像android开发一样 在后台获取前台的组件呢?

Android获取前台——MX4获取不到前台
[问题点数:40分,无满意结帖,结帖人c]
Android获取前台——MX4获取不到前台
[问题点数:40分,无满意结帖,结帖人c]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2016年4月 移动开发大版内专家分月排行榜第二
2016年7月 移动开发大版内专家分月排行榜第三2015年12月 移动开发大版内专家分月排行榜第三
2016年4月 移动开发大版内专家分月排行榜第二
2016年7月 移动开发大版内专家分月排行榜第三2015年12月 移动开发大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。android应用锁(4)
前一段时间发现android5.0以后的手机发现我们的APP悬浮窗获取前台应用的名称不起作用了,以前我们的作法如下:
public String getForegroundApp(Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List&RunningAppProcesInfo& lr = am.getRunningAppProcesses();
if (lr == null) {
for (RunningAppProcessInfo ra : lr) {
if (ra.importance == RunningAppProcessInfo.IMPORTANCE_VISIBLE
|| ra.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
return ra.processN
现在发现上面的lr.size一直是1, 也就是只能查找到自己。 最后google发现API 21 新增的接口,
这个 API 比已弃用的 getRecentTasks( ) 方法提供了更详细信息。
通过查看官网文档说明实现如下:
private String getForegroundApp() {
long ts = System.currentTimeMillis();
List&UsageStats& queryUsageStats = usageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST,ts-2000, ts);
if (queryUsageStats == null || queryUsageStats.isEmpty()) {
UsageStats recentStats =
for (UsageStats usageStats : queryUsageStats) {
if(recentStats == null || recentStats.getLastTimeUsed() & usageStats.getLastTimeUsed()){
recentStats = usageS
return recentStats.getPackageN
要使用这个API,首先你必须在你的 mainifest 文件声明 “android.permission.PACKAGE_USAGE_STATS” 权限。然后在 设置 & 安全 & 有权查看使用情况的应用 里,用户必须允许该 app 的访问。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:628840次
积分:9076
积分:9076
排名:第1409名
原创:54篇
转载:1410篇
评论:59条
(6)(15)(13)(2)(10)(28)(34)(6)(74)(7)(4)(4)(8)(11)(7)(10)(5)(9)(10)(4)(22)(10)(9)(27)(15)(33)(51)(45)(13)(87)(18)(41)(38)(129)(10)(17)(9)(16)(73)(55)(53)(55)(17)(106)(55)(52)(29)(53)(1)(15)(53)查看: 22626|回复: 30
如何监听android程序进入后台,和恢复到前台???
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
没有eoe的账号,级别还太低,出门如何吹牛逼?
才可以下载或查看,没有帐号?
具体要求:
1 程序有多个Activity时
2 进入后台的方式有多种,比如点击home(这个比较简单)、激活其他程序导致当前程序后台(如打进电话)、等
一个activity的时候,可以检测activity当前生命状态,多个的时候不知道怎么弄?
求大家指导!!!
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
基本思路正如9楼所述:
就是让app中所有的activity继承与一个公共的activity(例如:BaseActivity),然后在BaseActivity的onStop()中判断当前程序是否处于后台
[mw_shl_code=java,true]/**& &
* 文件名:BaseActivity.java& &
* 版本号:& & & &
* 创建人:
* Copyright wadata 版权所有
package com.wadata.mobilefollowup.view.
import java.util.L
import android.app.A
import android.app.ActivityM
import android.app.ActivityManager.RunningAppProcessI
import android.content.C
* 名称:BaseActivity
* 创建人:
* 日期: 下午5:53:35
public class BaseActivity extends Activity {
& & & & @Override
& & & & protected void onStop() {
& & & & & & & & // TODO Auto-generated method stub
& & & & & & & & super.onStop();
& & & & & & & & if (!isAppOnForeground()) {
& & & & & & & & & & & & //app 进入后台
& & & & & & & & & & & &
& & & & & & & & & & & & //全局变量isActive = false 记录当前已经进入后台
& & & & & & & & }
& & & & @Override
& & & & protected void onResume() {
& & & & & & & & // TODO Auto-generated method stub
& & & & & & & & super.onResume();
& & & & & & & &
& & & & & & & & //if (!isActive) {
& & & & & & & & & & & & //app 从后台唤醒,进入前台
& & & & & & & & & & & &
& & & & & & & & & & & & //isActive =
& & & & & & & & //}
& & & & /**
& & & &&&* 程序是否在前台运行
& & & &&&*
& & & &&&* @return
& & & &&&*/
& & & & public boolean isAppOnForeground() {
& & & & & & & & // Returns a list of application processes that are running on the
& & & & & & & & // device
& & & & & & & &
& & & & & & & & ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);
& & & & & & & & String packageName = getApplicationContext().getPackageName();
& & & & & & & & List&RunningAppProcessInfo& appProcesses = activityManager
& & & & & & & & & & & & & & & & .getRunningAppProcesses();
& & & & & & & & if (appProcesses == null)
& & & & & & & & & & & &
& & & & & & & & for (RunningAppProcessInfo appProcess : appProcesses) {
& & & & & & & & & & & & // The name of the process that this object is associated with.
& & & & & & & & & & & & if (appProcess.processName.equals(packageName)
& & & & & & & & & & & & & & & & & & & & && appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
& & & & & & & & & & & & & & & &
& & & & & & & & & & & & }
& & & & & & & & }
& & & & & & & &
[/mw_shl_code]
除了这个方法,有其他方法吗?而且这种的话,如果有多个Activity,当startActivity到另外个Activity的话,也会执行那个onStop,这样的话,程序不是出于后台啊,只是Activity的跳转而已啊。我要的是程序的后台,不知&
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
除了这个方法,有其他方法吗?而且这种的话,如果有多个Activity,当startActivity到另外个Activity的话 ...
当前Activity,startActivity到另外的Activity时,OnStop的确会被调用, 此时 isAppOnForeground() 返回值会为true,此时不用做任何操作 。&&当程序进入到后台时,当前Activity的OnStop也同样会被调用,但isAppOnForeground()返回值会为false,此时才做相应的处理。
我选择了用内存消耗的方法,除此之外没有了!&
签到天数: 3 天连续签到: 2 天[LV.2]偶尔看看I主题帖子e币
基本思路正如9楼所述:
就是让app中所有的activity继承与一个公共的activity(例如:BaseActivity),然后 ...
除了这个方法,有其他方法吗?而且这种的话,如果有多个Activity,当startActivity到另外个Activity的话,也会执行那个onStop,这样的话,程序不是出于后台啊,只是Activity的跳转而已啊。我要的是程序的后台,不知道能否理解我的后台的意思1
当前Activity,startActivity到另外的Activity时,OnStop的确会被调用, 此时 isAppOnForeground() 返回值会为true,此时不用做任何操作 。
当程序进入到后台时,当前Activity的OnStop也同样会被调用,但isAppOnFor&
该用户从未签到主题帖子e币
每个activity都有一个独立的生命周期。
当进入后台的时候 该activity会处于 onStop
该用户从未签到主题帖子e币
多个是啥意思呢?
就是程序不只有一个activity!可能是从一个跳转到下一个activity等等,随时可能进入后台状态&
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
guzhijie1981 发表于
多个是啥意思呢?
就是程序不只有一个activity!可能是从一个跳转到下一个activity等等,随时可能进入后台状态
亲,只有一个activity处于活动状态,activity是栈的概念&
该用户从未签到主题帖子e币
zhangning2969 发表于
就是程序不只有一个activity!可能是从一个跳转到下一个activity等等,随时可能进入后台状态 ...
亲,只有一个activity处于活动状态,activity是栈的概念
是只有一个处于活动状态!这个大家都知道的,依然感谢回复!&
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
guzhijie1981 发表于
亲,只有一个activity处于活动状态,activity是栈的概念
是只有一个处于活动状态!这个大家都知道的,依然感谢回复!
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
问题已经完美解决了!&&
请问楼主如何解决呢?希望能结一下帖子,共享给大家,谢谢!&
该用户从未签到主题帖子e币
zhangning2969 发表于
问题已经完美解决了!
请问楼主如何解决呢?希望能结一下帖子,共享给大家,谢谢!
该用户从未签到主题帖子e币
程序进入后台调用onStop()
重新进入前台调用onResume()
该用户从未签到主题帖子e币
找到厉害的了!~
不错啊~!~!~!顶顶顶~!真的不错!~学习了~!最后回答的不错~!
该用户从未签到主题帖子e币
问题是有的是继承TapActivity的,那这样还能实现吗?
是TabAcitivity吧! TabActivity是继承与Activity的,所以它是有OnResume,OnStop事件的! 因此肯定是可以实现的&
签到天数: 1 天连续签到: 1 天[LV.1]初来乍到主题帖子e币
sdner 发表于
问题是有的是继承TapActivity的,那这样还能实现吗?
是TabAcitivity吧! TabActivity是继承与Activity的,所以它是有OnResume,OnStop事件的! 因此肯定是可以实现的
签到天数: 5 天连续签到: 1 天[LV.2]偶尔看看I主题帖子e币
签到天数: 3 天连续签到: 1 天[LV.2]偶尔看看I主题帖子e币
QQ已认证,此人靠谱
圣诞限量勋章
圣诞限量勋章
社区认证会员
社区认证会员
推荐阅读热门话题
620001879417415378325277276259255251225217210715
昨天&23:56昨天&23:19昨天&15:35昨天&15:17昨天&13:20昨天&10:56昨天&10:53昨天&10:25昨天&10:22昨天&00:10前天&23:48前天&21:11前天&18:05前天&17:03前天&15:53前天&13:36
Powered by怎么让Android程序一直后台运行,像QQ一样不被杀死_百度知道

我要回帖

更多关于 javaee搭建后台 的文章

 

随机推荐