做一个网站以及app多少钱深圳门户网站有哪些
news/
2025/9/26 10:38:27/
文章来源:
做一个网站以及app多少钱,深圳门户网站有哪些,建设电子商城网站,瑞安网站建设公司需求#xff1a;不去掉系统自带launcher的前提下#xff0c;默认启动指定应用作为launcher现象#xff1a;应用中带有属性android.intent.category.HOME#xff0c;开机会弹出选择界面思路#xff1a;跳过选择界面#xff0c;直接选中要启动的launcher并直接…需求不去掉系统自带launcher的前提下默认启动指定应用作为launcher现象应用中带有属性android.intent.category.HOME开机会弹出选择界面思路跳过选择界面直接选中要启动的launcher并直接进入1.选择界面流程分析使用adb命令抓取到launcher选择提示框是一个activity路径是frameworks/base/core/java/com/android/internal/app/ResolverActivity.java此Activity会获取系统中所有的Home app并根据系统的设置情况显示如上界面。此类中有一个内部类ResolveListAdapter该类继承自BaseAdapter该类是Home app选择界面的数据适配器。ResolveListAdapter会在ResolverActivity的onCreate方法中被初始化并会传入一个ResolveInfo类型的ListResolveListAdapter根据会传入的List初始化一个List mList 用户的点击事件都会在ResolveListAdapter获取数据。用户点击”ALWAYS”的事件发生在ResolverActivity的onButtonClick 方法中此方法会获取选中的Item的position、或者获取用户上一次启动的Home app的mAlwaysUseOption代表用户选中的是否为历史选择并调用startSelected。onButtonClick()方法public void onButtonClick(View v) {final int id v.getId();startSelected(mAlwaysUseOption ?mListView.getCheckedItemPosition() : mAdapter.getFilteredPosition(),id R.id.button_always,mAlwaysUseOption);}startSeletced中通过ResolveListAdapter获取选择的item代表的Home app。并且finish此activityonTargetSelected()会根据传入的ResolveInfo设置默认的Homevoid startSelected(int which, boolean always, boolean filtered) {if (isFinishing()) {return;}...ResolveInfo ri mAdapter.resolveInfoForPosition(which,filtered);TargetInfo target mAdapter.targetInfoForPosition(which,filtered);if(onTargetSelected(target,always)){finish();}}而startSelected在ItemClickListener也被调用到public void onItemClick(AdapterView parent,View view,int position,long id){...startSelected(position,true,true);}可以看出第一个参数是启动的HomeActivity在adapter中的位置好分析完了现在开始修改。2.获取指定HomeActivity在adapter中的位置首先在adapter类中添加获取指定HomeActivity在list中位置的方法public int getDefaultHomePosition(String packageName){for (int i 0; i mDisplayList.size(); i) {ResolveInfo info mDisplayList.get(i).getResolveInfo();if (info.activityInfo.packageName.equals(packageName)) {return i;}}return -1;}3.启动定制launcher在ResolverActivity中添加设置默认app的方法setupDefaultLauncher()代码如下private void setupDefaultLauncher() {int position mAdapter.getDefaultHomePosition(home app包名);//如果不存在则returnif (position -1) {if (DEBUG)Log.w(TAG,not find default Home);return;}}startSelected(position, true, true);finish();}为了保证mAdapter被初始化 setupDefaultLauncher()的调用添加到ResolverActivity的onCreate函数中代码如下void configureContentview(...){mAdapter creatAdapter(...);...setupDefaultLauncher();...}注意你需要做成launcher的应用的manifest.xml中需要添加
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/918122.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!