在应用开发过程中,我们经常遇到在Module与App的交互,如果在Module里收到一条消息或指令,需要App程序中弹出全局的dialog,往往通过广播的方式,交由App中当前显示的Activity来实现,但是项目过大,尤其对于代码量庞大,人员混杂的项目,没有一个BaseActivity,无法获取到当前的Activity,实现就比较困难,通过网上学习,找到了一种获取Activity对象的实例的方法,代码如下
import android.app.Activity;
import java.lang.ref.WeakReference;
/**
* 获取当前显示的Activity
* Created by linfeifei on 2017/12/29.
*/
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