检测第一次在此会话中打开活动

Dem*_*rdi 6 android android-activity

每次用户启动应用程序时,我都需要检测第一次调用活动:

  • 应用程序已启动
  • 活动X是第一次调用
    • 做一点事
  • 活动Y,Z被多次调用
  • 活动X再次被调用多次
    • 没做什么

...所以只有当应用程序被关闭(或被杀死)然后再次启动时,才能调用"做某事".

And*_* T. 16

我通常static boolean在活动中使用变量作为标志.然后,在里面onCreate(),测试变量; 如果它是true,做一些事情并翻转旗帜.

public class MainActivity extends Activity {
    private static boolean RUN_ONCE = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ...

        runOnce();
    }

    private void runOnce() {
        if (RUN_ONCE) {
            RUN_ONCE = false;

            // do something
        }
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

  • 当应用程序进入后台并且前台应用程序需要内存时,有可能清除静态变量. (5认同)