我有一个非常简单的应用程序 - 它会根据是否插入蓝牙来打开和关闭蓝牙。
现在的应用程序在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开发文档;)
感谢阅读!
答案 0 :(得分:0)
如果您在活动中添加@Override onWindowFocusChanged(boolean hasFocus)
,则可以跟踪何时有焦点,何时不能。然后,您可以等到专注于更新UI。