Androidで現在表示されているActivityを取得
42467 ワード
1.Activityのライフサイクルのリスニング
ApplicationのonCreateメソッドで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
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);
-
}
-
-
}
3.
, Activity