Android中获取当前正在显示的Activity
16lz
2022-06-11
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 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更多相关文章
- eclipse中Android布局的基本操作
- android之Buffer类及子类学习
- Android简单文件浏览器源代码
- 安卓广播监听USB插拔
- Android学习笔记(29):搜索框SearchView
- Android(安卓)Service 系统服务
- Android(安卓)ApiDemos示例解析(15):App->Activity->SetWallpaper
- Android快速开发工具集合——YUtils
- Android判断当前应用程序处于前台还是后台的两种方法