您的位置:首页 > 移动开发 > Android开发

Android中获取当前正在显示的Activity

2018-01-23 17:51 615 查看

1.监听Activity的生命周期

在Application的onCreate方法中监听Activity的生命周期

registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {

}

@Override
public void onActivityStarted(Activity activity) {

}

@Override
public void onActivityResumed(Activity activity) {
MyActivityManager.getInstance().setCurrentActivity(activity);
}

@Override
public void onActivityPaused(Activity activity) {

}

@Override
public void onActivityStopped(Activity activity) {

}

@Override
public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

}

@Override
public void onActivityDestroyed(Activity activity) {

}
});


2.保存当前Activity的状态

package cn.uniwa.uniwa.util;

import android.app.Activity;

import java.lang.ref.WeakReference;

/**
* Created by zhoujian on 2018/1/19.
*/

public class MyActivityManager {

private static MyActivityManager sInstance = new MyActivityManager();

private WeakReference<Activity> sCurrentActivityWeakRef;

private MyActivityManager() {

}

public static MyActivityManager getInstance() {
return sInstance;
}

public Activity getCurrentActivity() {
Activity currentActivity = null;
if (sCurrentActivityWeakRef != null) {
currentActivity = sCurrentActivityWeakRef.get();
}
return currentActivity;
}

public void setCurrentActivity(Activity activity) {
sCurrentActivityWeakRef = new WeakReference<Activity>(activity);
}

}


3.使用场景

在服务中事实弹出被挤掉的对话框,就需要获取当前的Activity
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Activity 弹窗