Launcher的简单介绍

原创 2016年08月30日 17:49:37

Launcher

什么是Launcher

    Launcher是安卓系统中的桌面启动器,安卓系统的桌面UI统称为LauncherLauncher的启动实际上就是启动一个ActivityLauncher.java)。

当我们点击手机的home键时,实际上就是启动桌面管理器,会启动LaunCher.java Activity

我们也可以将自己的应用程序中的Activity作为Launcher,只要在我们的Activity注册时,在意图过滤器中添加categoryandroid:name="android.intent.category.HOME"android:name="android.intent.category.DEFAULT"这样当我们点击home键时会弹窗让我们选择开启那个Lanuncher

   

清单文件

<application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@android:style/Theme.NoTitleBar.Fullscreen">

        <activity

            android:name=".MainActivity"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>

                <category android:name="android.intent.category.HOME"/> 

                <category android:name="android.intent.category.DEFAULT"/>

            </intent-filter>

        </activity>

</application>

 

 

 

//查询所有的应用程序并显示 ResolveInfo的使用和获取所有安装程序列表的实现

Activity:

 

publicclass ShowDevelopments extends Activity {

         private GridView show_developments;

         private List<ResolveInfo> info;

         @Override

         protected void onCreate(BundlesavedInstanceState) {

                   super.onCreate(savedInstanceState);

                   setContentView(R.layout.activity_developments);

                   show_developments=(GridView)findViewById(R.id.show_developments);

                   info=newArrayList<ResolveInfo>();

                   getData();

                   MyAdapter adapter=newMyAdapter(info);

                   show_developments.setAdapter(adapter);

                   show_developments.setOnItemClickListener(newAdapterView.OnItemClickListener() {

 

                            @Override

                            public voidonItemClick(AdapterView<?> parent, View view,

                                               intposition, long id) {

                                     start(position);

                            }

                   });

         }

         /**

          * 界面跳转的方法:ComponentName的使用

          */

         private void start(int i){

                   ResolveInfoinfo = this.info.get(i); 

        //该应用的包名 

        String pkg =info.activityInfo.packageName; 

        //应用的主activity 

        String cls =info.activityInfo.name; 

        ComponentName componet = newComponentName(pkg, cls); 

        Intent intent = new Intent(); 

        intent.setComponent(componet); 

        startActivity(intent);

         }

         /**

          * 获取所有的安装的应用程序

          */

         private void getData(){

                   IntentmainIntent = new Intent(Intent.ACTION_MAIN, null); 

            mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

//          new ImageView(ShowDevelopments.this); 

            info = getPackageManager().queryIntentActivities(mainIntent, 0);

         }

         private class MyAdapter extendsBaseAdapter{

                   privateList<ResolveInfo> info;

                   private LayoutInflaterinflater;

                   privateMyAdapter(List<ResolveInfo> info){

                            this.info=info;

                            inflater=getLayoutInflater();

                   }

                   @Override

                   public int getCount() {

                            returninfo!=null?info.size():0;

                   }

 

                   @Override

                   public Object getItem(intposition) {

                            returninfo.get(position);

                   }

 

                   @Override

                   public long getItemId(intposition) {

                            return position;

                   }

 

                   @Override

                   public View getView(intposition, View convertView, ViewGroup parent) {

                            View[] view=newView[2];

                            if(convertView==null){

                                     convertView=inflater.inflate(R.layout.item_showdata,null);

                                     view[0]=convertView.findViewById(R.id.show_image);

                                     view[1]=convertView.findViewById(R.id.chengxu);

                                     convertView.setTag(view);

                            }

                            view=(View[])convertView.getTag();

                            ((TextView)view[1]).setText(info.get(position).loadLabel(getPackageManager()));

                            ((ImageView)view[0]).setImageDrawable((info.get(position).loadIcon(getPackageManager())));

                            return convertView;

                   }                

         }

}

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

android Launcher Demo小结

在android的development目录中有一个Demo是Launcher的实例Home 路径为:development/samples/Home 也可以这样找:grep "android.i...
  • yong_xu
  • yong_xu
  • 2015年12月22日 10:55
  • 534

Launcher介绍

111111111
  • liukason
  • liukason
  • 2017年01月10日 21:25
  • 59

android launcher中主要类的功能说明

AddAdapter.java:为setWallPaper提供adapter; Alarm.java:提供定时操作,比如把快捷方式拖动到垃圾箱后让垃圾箱消失再回复到原有的桌面; AllAppsLi...
  • mydreamongo
  • mydreamongo
  • 2014年08月26日 17:03
  • 1305

Java简单介绍

Java的三个版本:        Java SE:标准版,各应用平台的基础        Java EE:企业版,以企业为环境而开发应用程序的解决方案        Java ME:微型版,致力于消...
  • elibrace
  • elibrace
  • 2016年01月27日 08:42
  • 2185

Launcher 记录自定义桌面

Launcher 记录自定义桌面 前言我们在使用手机的过程中,都会把我们手机的桌面布置成我们最喜欢,最习惯,最便捷的桌面。对手机而言,我们每一次对桌面的布置都会使数据发生变化,而数据在内存中是临时的...
  • myfriend0
  • myfriend0
  • 2017年06月02日 10:38
  • 14096

JVM简单介绍

JVM模型结构 图: 程序计数器(PC): 当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。 场景:分支、循环、跳转、异常处理、线...
  • chun16free
  • chun16free
  • 2016年04月15日 14:07
  • 338

mybatis----简单介绍和使用

进公司后,公司用的Mysql数据库,持久层用的就是Mybatis,开始感觉没有接触过,应该挺难,可是现在看来全是自己吓自己,下面让我来简单介绍一下: MyBatis是一个基于java的持久层框架  ...
  • u013045959
  • u013045959
  • 2016年09月16日 14:11
  • 1473

数据库简单介绍

数据库相关知识简单介绍
  • qq_28975017
  • qq_28975017
  • 2017年08月22日 00:14
  • 253

P2P的简单介绍

发信人: steadystream (后来), 信区: P2P标  题: P2P的简单介绍发信站: 瀚海星云 (2005年03月29日18:46:39 星期二), 站内信件P2P是 "peer-t...
  • kevinye
  • kevinye
  • 2006年08月18日 13:45
  • 1166

Spring学习笔记一(Spring简单介绍)

1.前言 从今天起开始写几篇关于Spring的文章,来总结一下,近来的学习情况,也想与大家分享一下学习Spring的心得和体会。希望大家能够多多指正。  2.Spring简单介绍 上...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2015年08月09日 22:00
  • 1528
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Launcher的简单介绍
举报原因:
原因补充:

(最多只允许输入30个字)