Android 判断当前Activity是不是最后一个Activity 以及 应用或Activity是否存在

判断当前Activity是最后一个Activity:

在Activity的方法中, 有一个方法isTaskRoot()方法, 这个方法可以判断当前Activity是否是最后一个Activity, 如果是, 用户再按一次返回键就退出应用, 否则回到上一个仍然活动的Activity;

代码如下:

@Override
	public void onBackPressed() {
		if (isTaskRoot()) {
			Toast.makeText(mContext, "当前activity是该应用唯一,一个存活的activity", 0).show();
		}else {
			Toast.makeText(mContext, "当前activity不是是该应用唯一,存活的activity", 0).show();
		}
		super.onBackPressed();
	}

判断应用或Activity是否存在:

一、根据包名判断应用是否存在

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<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, 0);

if (list.size() == 0) {

// 说明系统中不存在这个activity

}

时间: 2024-09-27 16:05:33

Android 判断当前Activity是不是最后一个Activity 以及 应用或Activity是否存在的相关文章

【起航计划 007】2015 起航计划 Android APIDemo的魔鬼步伐 06 App-&gt;Activity-&gt;Forwarding Activity启动另外一个Activity finish()方法

Android应用可以包含多个Activity,某个Activity可以启动另外的Activity. 这些Activity采用栈结构来管理,新打开的Activity叠放在当前的Activity之上,当前的Activity停止运行. 当一个Activity停止运行时,Android系统保留其停止前的状态,当用户按下“Back”按键时,栈最上的Activity从栈顶退栈,之前的Activity移到栈顶,显示在屏幕上: 有些时候,当一个Activity启动新的Activity后,不希望把当前Activ

我的Android进阶之旅------&gt;Android关于Activity管理的一个简单封装

用一个集合类对所有的Activity进行管理,实现随时控制Activity.用add(Activity activity)方法向List中添加Activity,用remove(Activity activity)方法从List中移除Activity,用finishProgram()方法将List中所有Activity移除并退出程序 import java.util.ArrayList; import java.util.List; import android.app.Activity; imp

android 中在activity弹出一个对话框,并不会执行onpause生命周期方法

在实际的应用开发中,我们可能会在onResume中进行网络交互,在网络交互的过程中免不了使用Progressdialog,那么现在问题来了,在我们弹出一个进度对话框的时候如果我们的activity的onpause生命方法得到执行,然后在数据加载完毕,对话框进行消失的时候,activity的onResume再次得到执行,然后再次请求网络,这样一个恶性循环就开始了,这样的错误实在是太严重了,当然了上面只是在我的想象之中,然后就用代码实验了下,在弹出一个对话框的时候我们activity的onpause

Android中点击按钮启动另一个Activity以及Activity之间传值

场景 点击第一个Activity中的按钮,启动第二个Activity,关闭第二个Activity,返回到第一个Activity. 在第一个Activity中给第二个Activity传递值,第二个Activity中获取并显示. 打开第二个Activity Activity传值 注: 博客:https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 启动另一个Activity 在第一个Activity中

源码解析:dialog, popupwindow, 和activity 的第一个view是怎么来的?

问题 在慢慢熟悉android 的过程中,发现一个view 或者layout的初始化,或者构造的流程还是比较清楚的,也就是加到父控件中,然后就开始了对应的生命周期.但是整个界面的父控件,或者说系统的第一个view, 是怎么来的,如何初始化和绘制的呢? 概述 概述:带着困扰我的问题,在前文的基础上,继续分析应用界面和framework的关系,通过分析viewrootimpl 的来源,并结合dialog, popupwindow, 和activity 的 根view的创建流程,回答了问题界面的根vi

Recreating an Activity 重新创建一个活动

There are a few scenarios in which your activity is destroyed due to normal app behavior, such as when the user presses theBack button or your activity signals its own destruction by calling finish(). The system may also destroy your activity if it's

Android系列之Fragment(一)----Fragment加载到Activity当中

Android系列之Fragment(一)----Fragment加载到Activity当中 ?[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3978989.html 联系方式:[email protected] [正文] Android上的界面展示都是通过Activity实现的,Activity实在是太常用了.但是Activity也有它的局限性

Android中多个Activity继承自己写的父容器(Activity)

如果你的一个应用里面有几个不同的页面却需要设置一些相同的东西,那么,我觉得应该尝试着用父容器,开始自己就是不知道这个概念,弄得自己写了太多的不应该的代码....所谓的程序.....苦煞也.. 在父容器里面,我们可以统一相同的title,以及·相同的背景页面... 这里我给出一个连接哦,不懂的,就可以嘿咻嘿咻..http://pan.baidu.com/s/1sjBDPbn Android中多个Activity继承自己写的父容器(Activity),布布扣,bubuko.com

【安卓面试题】在一个Activity启动另一个Activity和在Service中启动一个Activity有什么区别

在Activity中可以直接使用Intent启动另一个Activity 显式Intent intent = new Intent(context, activity.class) 隐式 Intent intent = new Intent(“com.aa.www.act”); startActivity(intent); 如果从Service中用同样方法启动Activity 的话,会报错: android.util.AndroidRuntimeException: Calling startAc