我有一个应用程序,显示类似于Facebook Messenger应用程序的聊天头泡泡。我希望能够只在用户进入主屏幕时显示,而在您转到其他应用时不关注您。反正知道用户何时进入设备主屏幕?如果可能的话,无法找到有关此问题的更多信息,任何人都可以向我指出正确的方向吗?谢谢
答案 0 :(得分:1)
您可以使用Intent.CATEGORY_HOME
和Intent.ACTION_MAIN
来获取正在运行的任务并对其进行过滤:
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);
ComponentName currentTask = taskInfo.get(0).topActivity;
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_HOME);
mPackageManager = getPackageManager();
List<ResolveInfo> appList = mPackageManager.queryIntentActivities(mainIntent, 0);
for(int i = 0; i < appList.size(); i++) {
ResolveInfo apl = appList.get(i);
if(currentTask.getPackageName().equals(apl.activityInfo.packageName)) {
Log.e(TAG, "ONHOMESCREEN");
}
}
并将其添加到您的清单中:
<uses-permission android:name="android.permission.GET_TASKS"/>