我想更新我的应用UI,但只有我的应用程序在前台

时间:2012-03-10 03:44:20

标签: android user-interface foreground

我有一个非常简单的应用程序 - 它会根据是否插入蓝牙来打开和关闭蓝牙。

现在的应用程序在UI方面也非常简单 - 那里有1个按钮,可以让你根据需要打开和关闭蓝牙。

我实际上有这个工作,并且已经找到了如何更新按钮,但是,我想仅在应用程序位于前台时更新我的​​UI - 所以,如果我插入手机,我就是&#39 ;不在我的应用程序中,我没有希望我的应用程序弹出并更新用户界面 - 我只希望在我插入手机时应用程序处于打开状态时更改用户界面。

我已经尝试了以下代码,它确实在正在运行的应用列表中找到该应用,但无论如何都会打开应用 - 即,它会打开应用并更新我的用户界面之前是否开放。

  ActivityManager activityManager = (ActivityManager) context.getSystemService( Context.ACTIVITY_SERVICE );
  List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();

    for(RunningAppProcessInfo appProcess : appProcesses){
        if(appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND){
            Log.i("Foreground App", appProcess.processName);
            if(appProcess.processName.equals("vermel.BluetoothOn")) {
                    //update UI
            }
        }
    }

我做错了什么?请记住,我是Java和Android的新手,并且非常感谢细节解释,而不是链接到android开发文档;)

感谢阅读!

1 个答案:

答案 0 :(得分:0)

如果您在活动中添加@Override onWindowFocusChanged(boolean hasFocus),则可以跟踪何时有焦点,何时不能。然后,您可以等到专注于更新UI。