当前位置:首页 » 安卓系统 » android判断activity

android判断activity

发布时间: 2022-08-04 09:44:31

❶ android怎么判断当前activity

给每个Activity都添加对应的代码:
@Override
protected void onResume() {
super.onResume();
AppContext.getInstance().setCurrentActivity(this);
}

@Override
protected void onPause() {
AppContext.getInstance().setCurrentActivity(null);
super.onPause();
}
@Override
public void onDestroy() {
AppContext.getInstance().setCurrentActivity(null);
super.onDestroy();
}
然后在自己的app中:
import android.app.Activity;
import android.app.Application;

public class AppContext extends Application{
private Application parentApp;
private Activity curActivity;

public Application getAppContext() {
return parentApp;
}
private static class LazyHolder {
static AppContext instance = new AppContext();
}
public static AppContext getInstance() {
return LazyHolder.instance;
}
@Override
public boolean Start(Map<String, Object> args) {
Object param = args.get(appContext);
if (param instanceof Application) {
parentApp = (Application)param;
return true;
}
return false;
}
@Override
public void Stop(Map<String, Object> args) {

}

public void setCurrentActivity(Activity curActivity){
this.curActivity = curActivity;
}

public Activity getCurrentActivity(){
return this.curActivity;
}

public boolean isInAdapterActivity(){
boolean isInAdapterActivity = false;
if(null != curActivity){
if(curActivity instanceof AdapterActivity){
isInAdapterActivity = true;
}
}
return isInAdapterActivity;
}

public boolean isInScanActivity(){
boolean isInScanActivity = false;
if(null != curActivity){
if(curActivity instanceof ScanActivity){
isInScanActivity = true;
}
}
return isInScanActivity;
}
public boolean isInMainActivity(){
boolean isInMainActivity = false;
if(null != curActivity){
if(curActivity instanceof MainActivity){
isInMainActivity = true;
}
}
return isInMainActivity;
}
}
然后在对应各个Activity:
if(AppContext.getInstance().isInMainActivity()){
//do sth.
}

❷ android 判断当前在哪个activity界面

需要在哪里判断呢, Activity中, this或者context就是当前界面,如果是在service中要获取当前activity, 那就要用packageManager来判断

❸ android如何判断两个Activity是同一个Activity

判断两个activity的className

❹ Android中判断当前处于哪个Activity

当前的Activity只会有一个的
首先要知道Activity的四种状态:
Active/Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
Stoped 当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stoped 状态。
Killed Activity 被系统杀死回收或者没有被启动时处于 Killed 状态。

protected void onStart() 该方法在 onCreate() 方法之后被调用,或者在 Activity 从 Stop 状态转换为 Active 状态时被调用,一般执行了onStart()后就执行onResume()。
protected void onResume() 在 Activity 从 Pause 状态转换到 Active 状态时被调用。

❺ 如何判断android activity是否运行

判断android activity是否运行(可见)方法如下:
public static boolean isActivityRunning(Context mContext,String activityClassName){
ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> info = activityManager.getRunningTasks(1);
if(info != null && info.size() > 0){
ComponentName component = info.get(0).topActivity;
if(<span style="font-family: Arial, Helvetica, sans-serif;">activityClassName</span>.equals(component.getClassName())){
return true;
}
}
return false;
}

❻ android 如何判断当前是哪个activity

当前的Activity只会有一个的
首先要知道Activity的四种状态:
Active/Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
Stoped 当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stoped 状态。
Killed Activity 被系统杀死回收或者没有被启动时处于 Killed 状态。

protected void onStart() 该方法在 onCreate() 方法之后被调用,或者在 Activity 从 Stop 状态转换为 Active 状态时被调用,一般执行了onStart()后就执行onResume()。
protected void onResume() 在 Activity 从 Pause 状态转换到 Active 状态时被调用。

❼ android 判断activity是否存在

Android系统中,判断应用有无指定的Activity有两种方式:
1.根据包名判断,以下为判断代码:
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || “”.equals(packageName))
return false;
try {
ApplicationInfo info = context.getPackageManager()
.getApplicationInfo(packageName,
PackageManager.GET_UNINSTALLED_PACKAGES);
return true;
} catch (NameNotFoundException e) {
return false;
}
}

2. 根据Intent判断,以下为判断代码:
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, 0);
if(list.size() > 0){
return true;
}
return false;
}
public boolean checkApkExist(Context context, String packageName) {
if (packageName == null || “”.equals(packageName)) return false;
try {
ApplicationInfo info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true;
} catch (NameNotFoundException e) { return false; }
}
public boolean checkApkExist(Context context, Intent intent) {
List<ResolveInfo> list = context.getPackageManager()
.queryIntentActivities(intent, 0);
if (list.size() > 0) {
return true;
}
return false;
}

❽ android,怎么判断最后一个activity,退出程序给提示

android,判断最后一个activity可以用以下方法:

在Activity的方法中, 有一个方法isTaskRoot()方法, 这个方法可以判断当前Activity是否是最后一个Activity, 如果是, 用户再按一次返回就退出当前应用, 否则回到上一个仍然活动的Activity。具体的操作步骤如下:
1、为每个Activity创建基类BaseActivity,使得每个Activity都是继承于基本的BaseActivity的。
2、复写BaseActivity的finish方法,在方法中调用isTaskRoot()判断是否是最后一个Activity,如果是给出提示。


以下给出相关重要部分代码:

publicclass BaseActivity extends Activity{

@Override
public void finish() {
super.finish();
if(isTaskRoot()){
Toast.makeText(this,"已经退出程序",Toast.LENGTH_LONG).show();
}
}
}

热点内容
联盟网站源码 发布:2024-05-21 06:56:57 浏览:978
linuxshell入门 发布:2024-05-21 06:44:26 浏览:757
如何用手机设置qq邮箱密码 发布:2024-05-21 06:42:56 浏览:61
映像压缩 发布:2024-05-21 05:46:53 浏览:726
小葫芦直播助手服务器地址 发布:2024-05-21 05:46:51 浏览:969
遨游缓存视频 发布:2024-05-21 05:46:47 浏览:784
家用电脑能装服务器 发布:2024-05-21 05:45:56 浏览:437
闭鱼脚本 发布:2024-05-21 05:45:54 浏览:67
动态范围压缩开还是关 发布:2024-05-21 05:44:23 浏览:549
本田crv两驱买哪个配置 发布:2024-05-21 05:41:22 浏览:75