android判断activity
❶ 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();
}
}
}