android - 我如何知道我的应用程序是否已最小化?

标签 android android-activity

Activity.onPause()onStop() 在(至少)两种情况下被调用:

  1. 另一个 Activity 在当前 Activity 之上启动。
  2. 该应用已最小化。

有没有简单的方法来区分?

最佳答案

你可以这样做。让您的所有 Activity 都从基础 Activity 延伸出来。基本 Activity 需要保留一个可见性计数器,该计数器在 onResume/onPause 期间递增/递减:

public abstract class MyBaseActivity extends ActionBarActivity {
    private static int visibility = 0;
    private Handler handler;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        handler = new Handler();
    }

    @Override
    protected void onResume() {
        super.onResume();
        visibility++;
        handler.removeCallBacks(pauseAppRunnable);
    }

    @Override
    protected void onPause() {
        super.onPause();
        visibility--;
        handler.removeCallBacks(pauseAppRunnable);
        // give a short delay here to account for the overhead of starting
        // a new activity. Might have to tune this a bit (not tested).
        handler.postDelayed(pauseAppRunnable, 100L);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // uncomment this if you want the app to NOT respond to invisibility 
        // if the user backed out of all open activities.
        //handler.removeCallBacks(pauseAppRunnable);
    }

    private Runnable pauseAppRunnable = new Runnable() {
        @Override
        public void run() {
            if (visibility == 0) {
                // do something about it
            }
        }
    };

}

关于android - 我如何知道我的应用程序是否已最小化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25880785/

相关文章:

android - Android 中的全局搜索是否仍然可供开发人员使用?

Android - 从项目中完全删除 ActionBar Sherlock (ABS)

android - 我应该什么时候(在 Activity 生命周期中)保存?

java - 在 Titanium 中设置 Android Activity

android - 如何通过我的应用程序识别具有我自己扩展名的压缩文件

java - 使用 Android NDK 将 C++ 对象传递给 Java 的最有效方法是什么

android - 屏幕上剩余的自动完成文本

android - 通过 ADB 将数据从 Android Activity 发送到 PC

android - 如何防止Android应用程序中的 Activity 被破坏?

android - 从 Fragment 实现接口(interface)初始化接口(interface)