搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
从前慢现在也慢
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
大数据框架之Hive:第10章 分区表和分桶表_分区表和分桶表的相同点
2
STM32学习笔记(7) 超声波HSR04模块详解
3
guthub开源项目下载好方法_gut开源
4
python机器学习XGBoost梯度提升决策树的高效且可扩展实现
5
Mybatis中实现批量更新的几种姿势,总有一款适合你_mybatis批量更新 sql
6
推荐52个堪称神器的学习网站,每天坚持一小时,让你受益一生!_51tude
7
集成google+1组件,提示There was a temporary problem with your +1 Please try again later_there was a probloem coummunicating with google se
8
如何给git配置代理_git设置代理
9
万字详解整个数据仓库建设体系(好文值得收藏)
10
综述阅读:A guide to deep learning in healthcare_a guide to deep learning in healthcare.
当前位置:
article
> 正文
Android之ActivityManage长用方法总结_android 11 activitymanager.runingappprocess该怎么写
作者:从前慢现在也慢 | 2024-04-23 03:48:04
赞
踩
android 11 activitymanager.runingappprocess该怎么写
Android 如何判断一个应用在运行
在一个应用中,或一个Service 、Receiver中判断一个应用是否正在运行,以便进行一些相关的处理。
这个时候我们需要得到一个ActivityManager,这个Manager顾名思意就是管理Activity的,它有一个方法叫getRunningTasks,可以得到当前系统正在运行的Task的列表,代码如下:
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> list = am.getRunningTasks(100);
for (RunningTaskInfo info : list) {
if (info.topActivity.getPackageName().equals(MY_PKG_NAME) &&info.baseActivity.getPackageName().equals(MY_PKG_NAME)) {
isAppRunning = true;
//find it, break
break;
}
}
100表示取的最大的任务数,info.topActivity表示当前正在运行的Activity,info.baseActivity表系统后台有此进程在运行,具体要做如何判断就看自已的业务需求。这个类还有更多的方法可以取得系统运行的服务、内存使用情况等的方法,请各位自行查找。
需要加上权限:
<uses-permission android:name="android.permission.GET_TASKS" />
=====================================
//判断应用是否在运行
ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> list = am.getRunningTasks(100);
String MY_PKG_NAME = "com.cyberblue.iitag";
for (RunningTaskInfo info : list) {
if (info.topActivity.getPackageName().equals(MY_PKG_NAME) ||
info.baseActivity.getPackageName().equals(MY_PKG_NAME)) {
Log.i("程序是否运行?", "是");
break;
}
}
================================================
Android系统内部状态信息的相关api:
得到ActivityManager :
ActivityManager activityManager = (ActivityManager)this.getSystemService(ACTIVITY_SERVICE)
这个位查到底是什么信息:
ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
获取进程内存状态的信息:
Debug.MemoryInfo[] processMemoryInfo = activityManager.getProcessMemoryInfo(processIds);
获取当前运行的service信息:
List<RunningServiceInfo> runningServiceInfos = activityManager.getRunningServices(MaxValue);
获取当前运行的任务信息:
List<RunningTaskInfo> runningTaskInfos = activityManager.getRunningTasks(MaxValue);
其中runningTaskInfos 的 topActivity就是当前Task的活跃Activity
在getRunningTasks()所返回的Task队列中系统会根据这些Task的活跃度有一个排序,越活跃越是靠前。第一个就是当前活动的Task。。。
/**
* 检测某ActivityUpdate是否在当前Task的栈顶
*/
public boolean isTopActivy(String cmdName){
ActivityManager manager = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> runningTaskInfos = manager.getRunningTasks(1);
String cmpNameTemp = null;
if(null != runningTaskInfos){
cmpNameTemp=(runningTaskInfos.get(0).topActivity).toString);
Log.e("cmpname","cmpname:"+cmpName);
}
if(null == cmpNameTemp)return false;
return cmpNameTemp.equals(cmdName);
}
最后在应用中添加所需的权限:
<uses-permission android:name="android.permission.GET_TASKS"/>
================================================================
private boolean isLauncherRunnig(Context context) {
boolean result = false ;
List<String> names = getAllTheLauncher();
ActivityManager mActivityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE) ;
List<ActivityManager.RunningAppProcessInfo> appList = mActivityManager.getRunningAppProcesses() ;
for (RunningAppProcessInfo running : appList) {
if (running.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
for (int i = 0; i < names.size(); i++) {
if (names.get(i).equals(running.processName)) {
result = true ;
break;
}
}
}
}
return result ;
}
private List<String> getAllTheLauncher(){
List<String> names = null;
PackageManager pkgMgt = this.getPackageManager();
Intent it = new Intent(Intent.ACTION_MAIN);
it.addCategory(Intent.CATEGORY_HOME);
List<ResolveInfo> ra =pkgMgt.queryIntentActivities(it,0);
if(ra.size() != 0){
names = new ArrayList<String>();
}
for(int i=0;i< ra.size();i++)
{
String packageName = ra.get(i).activityInfo.packageName;
names.add(packageName);
}
return names;
}
android 取当前显示的activity是什么
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
ComponentName cn = am.getRunningTasks(1).get(0).topActivity;
Log.d("", "pkg:"+cn.getPackageName());
Log.d("", "cls:"+cn.getClassName());
android 如何判断程序是否在前台运行
[java] view plaincopy
private boolean isTopActivity(){
List<RunningTaskInfo> tasksInfo = activityManager.getRunningTasks(1);
if(tasksInfo.size() > 0){
//应用程序位于堆栈的顶层
if(packageName.equals(tasksInfo.get(0).topActivity.getPackageName())){
return true;
}
}
return false;
}
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/471992
推荐阅读
article
android
+
ios
+短信,
Flutter
与原生(
Android
/
IOS
)的消息通信...
开发集成环境[✓]
Flutter
(Channel stable, v1.12.13+hotfix.9, on Mac...
赞
踩
article
android
版本
点开
黑屏
,
Android
手机
锁屏
之后打开就会
黑屏
报错
...
出现VR场景后,
锁屏
,再打开,VR场景就会消失,报以下错误。MiniProgramErrorCannot read pr...
赞
踩
article
Android
+
iOS
自动化
基于
appium
环境搭建_
xctestwd
...
一、环境依赖 一、JDK环境 二、
Android
-SDK环境(android
自动化
) 三、Homebrew环境 四...
赞
踩
article
Windows下部署
App
ium
教程(
Android
App
自动化
测试框架搭建)_
appium
-wi...
摘要: 1,
appium
是开源的移动端
自动化
测试框架;---------------------------------...
赞
踩
article
android
-
studio
模拟器
安装教程(
mac
版
,
只用命令行启动安卓
模拟器
)_
mac
andro...
android
-
studio
模拟器
安装教程(
mac
版
,
只用命令行启动
模拟器
,
如果你只需要使用安卓
模拟器
的话)_
mac
a...
赞
踩
article
Android
Studio
(Mac)连接网易UU
模拟器
_
mac
android
studio
连接...
配置文件export ANDROID_HOME=/Users/用户名/Library/
Android
/sdk expor...
赞
踩
article
Mac
好用
的
Android
模拟器
整理(
玩游戏
、装应用、
支持
咸鱼、拼多多...)...
很多
Android
模拟器
都只
支持
Windows 端,
Mac
端相对少点,挑了几个相对好点
的
备用记录下。一、网易 M...
赞
踩
article
Mac
m
系列的安卓模拟器选择之一:
m>android
m>-
m>e
m
ulator
m>-
m
1-
preview
_an...
为了在
Mac
上玩玩安卓渠道服的阴阳师( ios 端的游戏玩不了),看网上的教程有这么个东西可以使用,8g 运行内存运...
赞
踩
article
android
自定义
键盘
_
BlueStacks
4
for
mac(
Android
模拟器)...
BlueStacks
蓝叠4Mac电脑上最快的
Android
游戏平台有了
BlueStacks
,避免了手机电量不够的尴尬,玩...
赞
踩
article
Android
Studio
res
目录下没有
Layout
_为什么
android
studio
的re...
于是右键
res
尝试新建
Layout
,尝试一次后点finish界面无变化。然后尝试第二次新建却显示
Layout
文件夹
已存...
赞
踩
article
Android
13
SystemUI
,
底部
导航
栏
新增
功能
按键
、
导航
栏侧边(左侧
,
右侧
,
顶侧)显示。...
SystemUI
是
Android
原生系统极重要的系统APP
,
本文介绍如何根据需要在原生三个
按键
BACK HOME RE...
赞
踩
article
Android
11.0 解决切换
横屏
时
SystemUI
导航
栏固定在桌面右侧而不是底部的问题
_
con...
正常情况下横竖屏旋转的时候
导航
栏也会跟着一起旋转,但是在
Android
R上面发现
导航
栏在
横屏
的时候是固定在右侧的,而不...
赞
踩
article
Android
P宽屏项目
SystemUI
下拉栏
覆盖
NavigationBar
导航栏_
android
...
Android
P宽屏项目
SystemUI
下拉栏
覆盖
NavigationBar
导航栏需求该项目为宽屏显示,Navigat...
赞
踩
article
Android
11.0
NavigationBarView
导航
栏
左边
显示
的
修改
_
android
...
在
11.0
定制化开发中,要求
导航
栏
左边
显示
的定制化,这时需要了解
导航
栏
的
显示
控制方向,然后
修改
显示
方向在10.0以后关...
赞
踩
article
Android
TV
导航
栏
显示
在左侧/右侧时,布局
显示
异常
_
android
13
导航
栏靠左...
一般情况下,StatusBar
显示
在屏幕的顶部,NavigationBar
显示
在屏幕底部。但有些特殊情况。在PhoneW...
赞
踩
article
Android
5.0以上系统设置
沉浸
式
状态栏
_
android
系统设置
沉浸
式
状态栏
...
首先App的theme得是NoActionBar,然后在Activity 的onCreate方法中的setContent...
赞
踩
article
Android
开启
一个
透明
的
Activity
_启动
一个
背景
透明
的
activity
...
一丶首先获取
Activity
的Window对象,将
Activity
所属的Window设置为
一个
像素大小// 设置
透明
沉浸...
赞
踩
article
Android
Studio
学习笔记——
广播
机制
Broadcast
...
安卓每个应用程序都可以对自己感兴趣的
广播
进行注册,要该程序就只会接收到自己所关心的
广播
内容。这些
广播
可能是来自于系统的,...
赞
踩
article
Android
Studio
学习记录-
收发
应用
广播
_
android
studio
广播
...
本文介绍应用
广播
的几种
收发
形式,包括如何
收发
标准
广播
、如何
收发
有序
广播
、如何
收发
静态
广播
、如何监听定时管理器发出的系统闹...
赞
踩
article
Android
Studio
常见问题解决...
控制台中文乱码Unsupported Java. Your build is currently configured ...
赞
踩
相关标签
android+ios+短信
android 版本点开黑屏
appium
测试工具
自动化
windows
android
软件测试
python
macos
android studio
安卓
玩游戏
android 自定义键盘
android 获取cpu使用率
android自定义键盘方法
ide