在Android中,如何判断当前是否在桌面上
展开全部
判断过程有三个知识点。
1.如何找出正在运行的任务。 Android系统是支持多任务的,找到所有运行的任务是关键。
2.如何找出当前正在运行的任务。虽然android是多任务的系统,但是同时在前端运行的应用只会有一个。
3.如何找出桌面。
完整代码如下:
public boolean isHome(){
homes = getHomes();
ActivityManager mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
List<</span>RunningTaskInfo> rti = mActivityManager.getRunningTasks(1);
return homes.contains(rti.get(0).topActivity.getPackageName());
}
private List<</span>String> getHomes() {
List<</span>String> packages = new ArrayList<</span>String>();
PackageManager packageManager = ListenService.this.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
List<</span>ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
for(ResolveInfo info : resolveInfo){
packages.add(info.activityInfo.packageName);
System.out.println(info.activityInfo.packageName);
}
return packages;
}
1.如何找出正在运行的任务。 Android系统是支持多任务的,找到所有运行的任务是关键。
2.如何找出当前正在运行的任务。虽然android是多任务的系统,但是同时在前端运行的应用只会有一个。
3.如何找出桌面。
完整代码如下:
public boolean isHome(){
homes = getHomes();
ActivityManager mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
List<</span>RunningTaskInfo> rti = mActivityManager.getRunningTasks(1);
return homes.contains(rti.get(0).topActivity.getPackageName());
}
private List<</span>String> getHomes() {
List<</span>String> packages = new ArrayList<</span>String>();
PackageManager packageManager = ListenService.this.getPackageManager();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
List<</span>ResolveInfo> resolveInfo = packageManager.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
for(ResolveInfo info : resolveInfo){
packages.add(info.activityInfo.packageName);
System.out.println(info.activityInfo.packageName);
}
return packages;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询