1. 在 LauncherModel.java 中增加例如以下代码, 假设是KK Launcher3 ApplicationInfo要替换为AppInfo

public static final Comparator<ApplicationInfo> getInstallTimeComparator() {

  return new Comparator<ApplicationInfo>() {

            public final int compare(ApplicationInfo a, ApplicationInfo b) {

                return a.firstInstallTime == b.firstInstallTime ?

0 : a.firstInstallTime > b.firstInstallTime ? 1:-1;

            }

        };

 }





 public static class InstallTimeComparator implements Comparator<ResolveInfo> {

  private PackageManager mPackageManager;

  List<ResolveInfo> mapps;

  InstallTimeComparator(PackageManager pm, List<ResolveInfo> apps)

  {

   mPackageManager = pm;

   mapps = apps;

   

  }

 

  public final int compare(ResolveInfo a, ResolveInfo b) {

   String packageNameA = a.activityInfo.applicationInfo.packageName;

   String packageNameB = b.activityInfo.applicationInfo.packageName;

   long firstInstallTimeA = 0, firstInstallTimeB = 0;

   try{

   firstInstallTimeA = mPackageManager.getPackageInfo(packageNameA, 0).firstInstallTime;

   firstInstallTimeB = mPackageManager.getPackageInfo(packageNameB, 0).firstInstallTime;

   }catch(Exception e){

    e.printStackTrace(); 

    return 0;

   }

  return firstInstallTimeA == firstInstallTimeB ?

0 : firstInstallTimeA > firstInstallTimeB ?

1:-1;

  }

 };

 

2. 改动 LauncherModel.java 的 loadAllAppsByBatch() 方法:



Collections.sort(apps,new LauncherModel.ShortcutNameComparator(packageManager, mLabelCache));

替换成:

Collections.sort(apps,new InstallTimeComparator(packageManager, apps));

 

3. 改动 AppsCustomizePagedview.java 的 setApps 方法



Collections.sort(mApps, LauncherModel.getAppNameComparator());

替换成:

Collections.sort(mApps, LauncherModel.getInstallTimeComparator());

 

4. 系统排序会调用reorderApps方法,因此您在其它条件下也要达到安装时间排序,请在相应的reorderApps方法调用前添加

Collections.sort(mApps, LauncherModel.getInstallTimeComparator());

比如:安装的应用后也想安装新的排序方式排列,须要在AppsCustomizePagedview.java 的 addApps 方法前添加sort的调用

android 怎样将主菜单图标改成按安装时间排序的更多相关文章

  1. Android 自己定义主菜单

    本文介绍一个超简单的自己定义主菜单.效果例如以下: 原理:事实上就是对原生的Dialog的一个简单的封装.并加上显示和隐藏的动画效果.再给控件加上回调事件. TestDialog.java publi ...

  2. 把图标改成web字体

    一.下载自己想要的矢量图标,然后在AI中打开二.在AI中将有瑕疵的图标修改一下,再分别另存为svg格式的图标三.打开IcoMoon Web app网页,然后点击左上角的+Import Icons添加你 ...

  3. android launcher2开发之 有抽屉改成无抽屉

    在launcher.java中在createShortcut方法中   屏蔽全部应用button 修改之前 View createShortcut(int layoutResId, ViewGroup ...

  4. js点击出现二级菜单,点击二级菜单主菜单换成二级菜单

    点击出现二级菜单 *{ margin:0px auto; padding:0px; } .yiji{ width:200px; height:40px; background-color:red; c ...

  5. Windows Boot Manager改成中文菜单

    用管理员身份运行"命令提示符",依次执行以下命令 bcdedit /deletevalue {bootmgr} device bcdedit /deletevalue {bootm ...

  6. Xamarin.Android之ActionBar与菜单

    一.选项卡 如今很多应用都会使用碎片以便在同一个活动中能够显示多个不同的视图.在Android 3.0 以上的版本中,我们已经可以使用ActionBar提供的Tab来实现这种效果,而不需要我们自己去实 ...

  7. 开发Android应用怎么更改LOGO图标

    开发安卓应用怎么更改LOGO图标,我们知道我们开发安卓程序的时候,都需要给他整一个logo,一般开发程序都会自动一个图标,我们怎么给他更换自己想要的logo图标,之前大家看过我们写的怎么安装程序到虚拟 ...

  8. QT 设置菜单图标

    目录 一.添加主窗口菜单 二.添加菜单图标 三.添加资源文件 四.使用资源文件 五.使用代码来添加菜单和图标     正文 一.添加主窗口菜单 1.新建Qt Gui应用,项目名称为myMainWind ...

  9. Fiddler2 主菜单

    Fiddler2 主菜单 六个主菜单分别是: 文件(File) Capture Traffic ——启用捕获功能,快捷键 F12 此功能的开启/关闭状态,程序安装后默认是开启的.可以在 Fiddler ...

随机推荐

  1. [CF] 402 E. Strictly Positive Matrix

    一个矩阵,自乘无限次后能否全为正数? 如果n比较小,可以二分一下,但是这里n很大,乘一次都无法接受 可以考虑实际含义:矩阵看成邻接矩阵,那么0就是没有边,其余就是有边. 我们知道邻接矩阵自乘k次就相当 ...

  2. 常见的网络命令--ping.hostname

    hostname命令 作用:显示以及设置主机名 一.  显示系统主机名 第一种方式:hostname 第二种方式:cat /etc/sysconfig/ntework 使用举例: 从上面可以看到我的系 ...

  3. 删除mysql中user为空用户,mysql空密码

    进入mysql数据库 mysql -uroot -p 查看用户信息 select user,host ,Password from mysql.user; 如下图: 删除user为空用户 delete ...

  4. django扩展User模型(model),profile

    from django.contrib.auth.models import User # Create your models here. class Profile(models.Model): ...

  5. Python通过Openpyxl包汇总表格,效率提升100倍

    最近找了份小兼职,干的全是些无聊的工作,比如说给word调整一下排版啦.把从多方回收来的Excel汇总啦,这些极其催眠又耗时的事,怎么能接受手动去做呢!!(疯了嘛,谁知道以后还有多少类似的表格要汇总啊 ...

  6. 分享下自己的EmpireofCode进攻策略 https://empireofcode.com/ https://empireofcode.com/game/#

    # 没什么用,该游戏的模块调用不友好,取数据难import queue from battle import commander # import math unit_client = command ...

  7. 算法导论 第十三章 红黑树(python)-1插入

    红黑树是上一章二叉搜索树的改进,实现一种平衡 ,保证不会出现二叉树变链表的情况,基本动态集合操作的时间复杂度为O(lgn) 实际用途:c++stl中的set,map是用他实现的 红黑树的性质: 1.每 ...

  8. 洛谷P4779 Dijkstra 模板

    这道题很久之前做过 今天复习(复读)一遍 有疑问的就是pair的专属头文件#include<utility> 但是据说iostream和vector等已经包含了这个 #include< ...

  9. 如何使用werkzeug创建WSGI APP

    注意 : 1.定义__call__的意义 class App(): def __init__(self): pass def method(self): pass app=App() app() #错 ...

  10. [BZOJ4052][Cerc2013]Magical GCD

    [BZOJ4052][Cerc2013]Magical GCD 试题描述 给出一个长度在 100 000 以内的正整数序列,大小不超过 10^12.  求一个连续子序列,使得在所有的连续子序列中,它们 ...