问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

网易云音乐Android端是怎么做到从任务栈中删除依然运行

发布网友 发布时间:2022-06-27 22:20

我来回答

1个回答

热心网友 时间:2023-10-05 07:33

在开发项目的时候,我们经常会遇到一些问题,除了设置一些Activity的启动模式之外,好需要得到这个类是否被启动过,判断某一个类是否存在任务栈里面这个时候,我们就可以用到下面的方法:/**
* 判断某一个类是否存在任务栈里面
* @return
*/
private boolean isExsitMianActivity(Class cls){
Intent intent = new Intent(this, cls);
ComponentName cmpName = intent.resolveActivity(getPackageManager());
boolean flag = false;
if (cmpName != null) { // 说明系统中存在这个activity
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List taskInfoList = am.getRunningTasks(10);
for (RunningTaskInfo taskInfo : taskInfoList) {
if (taskInfo.baseActivity.equals(cmpName)) { // 说明它已经启动了
flag = true;
break; //跳出循环,优化效率
}
}
}
return flag;
}
/**
* 进行逻辑处理
*/
public void dealWithIntent(){
if(isExsitMianActivity(MainActivity.class)){//存在这个类
//进行操作
}else{//不存在这个类
//进行操作
}
}

另外还有:
一、根据包名判断应用是否存在

public boolean checkApplication(String packageName) {
if (packageName == null || .equals(packageName)){
return false;
}
try {
ApplicationInfo info = getPackageManager().getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}

二、判断Activity是否存在

Intent intent = new Intent();
intent.setClassName(包名, 类名);

方法一:
if (getPackageManager().resolveActivity(intent, 0) == null) {
// 说明系统中不存在这个activity
}

方法二:
if(intent.resolveActivity(getPackageManager()) == null) {
// 说明系统中不存在这个activity
}

方法三:
List list = getPackageManager().queryIntentActivities(intent, 0);
if (list.size() == 0) {
// 说明系统中不存在这个activity
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
糖代谢增高会发展成糖尿病吗? 地毯怎么选购呢 酒店地毯定制 葡萄籽油可以炒菜吗 葡萄籽食用油炒菜好吃吗 ...道路的理论基础、时代背景、历史依据、现实依据 排骨怎么炖好吃又简单家常做法 家常炖排骨怎样做好吃 vivox9spius怎么设置指纹解锁屏幕呀求大神交 vivox9pius怎么解锁密码 手机,没了你会更好作文 英语瑞士和瑞典怎么形象记忆? 瑞士(人)及瑞典(人)英语 请问瑞士的英语单词怎么写? 英语单词:区分瑞士&瑞典 太原有铜钱交易市场吗? 太原市哪里有二手相机行? 太原市二手摩托交易市场在那。要详细地址 太原哪里可以回收和田玉 黄色蜘蛛有毒吗 140平房子公摊多少 包括那几项 小高层住宅140平方公摊面积多少算合理 110平方和140平方公摊一样吗? 我家房子是高层,建筑面积,140平米,公摊33平方,是不是有点多? 两梯三户140平房子公摊面积32平合适吗 三方仓140平公摊面积的百分之40是多少? 120平房子和140平房子选哪个? 腾讯大王卡29元套餐有多少通话? 腾讯大王卡29元套餐量流超出后怎么收费? 腾讯大王卡29元套餐有多少量流? 机械设计与制造,电气交流版块CGA580的螺纹尺寸是多少 vray 蓝佐斯过滤器 vray中几个抗锯齿过滤器的作用是什么? 大家感觉Bio Island 赖氨酸咀嚼片儿童青少年黄金助长素 离婚十年1到3个女性都不行今年已老应该怎么办? 北大清华状元是怎样学习的 以宏观和微观分析企业市场营销环境? 无锡成人用品在哪里批发? 无锡市飞龙日用品厂怎么样? 无锡市佳美床上用品厂怎么样? 无锡市金腾文教用品厂怎么样? 我是一名警校在校生,计算机科学与技术专业的可以考中国人民*大学的硕士研究生吗? 我想考中国*大学的研究生,可我不知道怎么报名,我是计算机网络安全专业的?如果你知道流程请告诉我, 本人是一名211大学大三学生,计算机专业。因为对*的向往想考公大研究生。有几个问题: 报考警校计算机专业的研究生问题 您好!我是一名警校在读生。我想考中国人民*大学计算机科学与技术专业研究生。请问专业课方面... 你好 我想报考2011年中国人民*大学的计算机类研究生。可是我一只眼睛近视300度。请问可以吗。 您好,我想了解公安大学计算机研究生方面的事情 仿写句子,金风送爽,风里弥漫着……一两朵白云……写春天,夏天 看到天上有两朵白云一样的东西在飞,飞过来又飞过去,那是什么啊 疯狂猜成语一个太阳与两朵白云是什么