当前位置: 首页 > news >正文

网站服务器 内容更新吗/全自动引流推广软件免费

网站服务器 内容更新吗,全自动引流推广软件免费,好看的页面图片,外国公司做网站一、背景 前不久,微博官方发布了一项新功能,微博年费会员可以在App设置中动态更换微博的显示图标样式,但由于部分手机存在系统差异,会导致该功能不可用,微博方面后续还会对该功能进行进一步优化。 我们可以注意到&…

一、背景

在这里插入图片描述

前不久,微博官方发布了一项新功能,微博年费会员可以在App设置中动态更换微博的显示图标样式,但由于部分手机存在系统差异,会导致该功能不可用,微博方面后续还会对该功能进行进一步优化。
我们可以注意到,以往淘宝和天猫等平台在618、双十一等特定节日的时候,都会更换图标样式,这是怎么做到的呢?

二、技术实现

说到底,上述功能用到的是动态更换桌面图标的技术,我们可以直接使用PackageManager就可以实现动态更换桌面图标,值得注意的是,在Manifest文件中使用标签准备多个Activity入口,每个activity都指向入口Activity,并且为每个拥有标签的activity设置单独的icon和应用名,最后调用SystemService 服务kill掉launcher,并执行launcher的重启操作。

首先,我们在AndroidManifest.xml文件中添加如下代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"package="com.xzh.demo"><!-- 权限--><uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/><applicationandroid:allowBackup="true"android:icon="@mipmap/wb_default_logo"android:label="@string/app_name"android:roundIcon="@mipmap/wb_default_logo"android:supportsRtl="true"android:theme="@style/Theme.AndroidDemo">...//省略其他代码<!-- 默认图标--><activity-aliasandroid:name="com.xzh.demo.default"android:targetActivity=".MainActivity"android:label="@string/app_name"android:enabled="false"android:icon="@mipmap/wb_default_logo"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity-alias><!—特别图标--><activity-aliasandroid:name=".threedweibo"android:targetActivity=".MainActivity"android:label="@string/wb_3d"android:enabled="false"android:icon="@mipmap/wb_3dweibo"android:exported="true"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity-alias>... //省略其他</application>
</manifest>

上面配置中涉及到的属性如下:

android:name:注册的组件名字,启动组件的名称。
android:enabled:是否启用这个组件,也就是是否显示这个入口。
android:icon:图标
android:label:名称
android:targetActivity:默认的activity没有这个属性,指定目标activity,与默认的activity中的name属性是一样的,需要有相应的java类文件。

接着,我们在MainActivity触发Logo图标更换逻辑,代码如下:

class MainActivity : AppCompatActivity() {var list: List<LogoBean> = ArrayList()var recyclerView: RecyclerView? = nullvar adapter: LogoAdapter? = nulloverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)initView()initData()initRecycle()}private fun initView() {recyclerView = findViewById(R.id.recycle_view)}private fun initData() {list = Arrays.asList(LogoBean(R.mipmap.wb_default_logo, "默认图标", true),LogoBean(R.mipmap.wb_3dweibo, "3D微博", false),LogoBean(R.mipmap.wb_cheese_sweetheart, "奶酪甜心", false),LogoBean(R.mipmap.wb_chocolate_sweetheart, "巧克力", false),LogoBean(R.mipmap.wb_clear_colorful, "清透七彩", false),LogoBean(R.mipmap.wb_colorful_sunset, "多彩日落", false),LogoBean(R.mipmap.wb_colorful_weibo, "炫彩微博", false),LogoBean(R.mipmap.wb_cool_pool, "清凉泳池", false),LogoBean(R.mipmap.wb_fantasy_purple, "梦幻紫", false),LogoBean(R.mipmap.wb_fantasy_starry_sky, "幻想星空", false),LogoBean(R.mipmap.wb_hot_weibo, "热感微博", false),)}private fun initRecycle() {adapter =LogoAdapter(this,list);val layoutManager = GridLayoutManager(this, 3)recyclerView?.layoutManager = layoutManagerrecyclerView?.adapter = adapteradapter?.setOnItemClickListener(object : OnItemClickListener {override fun onItemClick(view: View?, position: Int) {if(position==1){changeLogo("com.xzh.demo.threedweibo")}else if (position==2){changeLogo("com.xzh.demo.cheese")}else if (position==3){changeLogo("com.xzh.demo.chocolate")}else {changeLogo("com.xzh.demo.default")}}})}fun changeLogo(name: String) {val pm = packageManagerpm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP)pm.setComponentEnabledSetting(ComponentName(this, name),PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP)reStartApp(pm)}fun reStartApp(pm: PackageManager) {val am = getSystemService(ACTIVITY_SERVICE) as ActivityManagerval intent = Intent(Intent.ACTION_MAIN)intent.addCategory(Intent.CATEGORY_HOME)intent.addCategory(Intent.CATEGORY_DEFAULT)val resolveInfos = pm.queryIntentActivities(intent, 0)for (resolveInfo in resolveInfos) {if (resolveInfo.activityInfo != null) {am.killBackgroundProcesses(resolveInfo.activityInfo.packageName)}}}
}

注意上面的changeLogo()方法中的字符串需要和AndroidManifest.xml文件中的的name相对应。运行上面的代码,然后点击应用中的某个图标,就可以更换应用的桌面图标。

http://www.jmfq.cn/news/5242357.html

相关文章:

  • 专业的购物网站定制/seo草根博客
  • 成人本科可以考研吗/搜索引擎优化的完整过程
  • 主机托管服务/seo建设招商
  • 做网站 信科网络/设计好看的网站
  • 创意产品设计大赛/杭州百度快照优化排名推广
  • 东莞网站制作方案定制/网站搭建需要什么技术
  • 申请域名后可以做自己的网站吗/怎样做好网络推广呀
  • 东莞网站建设推广公司哪家好/搜索引擎推广的三种方式
  • 牛b插网站建设/企业网站seo公司
  • 个人网站建设方案书 备案/色盲测试图第六版
  • 律师事务所网站设计方案/百度权重划分等级
  • 百度做的网站/汕头seo全网营销
  • 百度竞价收费标准/sem与seo
  • 面试网站开发/爱站网站长seo综合查询工具
  • 品牌网站建设方案/百度搜索引擎广告
  • 做外贸自己开公司网站/磁力最好用的搜索引擎
  • 网站建设属于商标哪个类/百度关键词工具在哪里
  • b2c电子商务网站比较/武汉百度开户代理
  • inurl:网站建设/百度指数分析报告案例
  • 做外贸有哪些好的网站有哪些内容/付费推广有几种方式
  • 本地搭建linux服务器做网站/优化师培训
  • zepto网站开发/可以免费领取会员的软件
  • 专业移动网站建设商/百度精简版入口
  • 加强人大门户网站建设/天津百度推广电话号码
  • 利用黑群晖做网站/培训班管理系统 免费
  • 做网站的品牌公司有哪些/百度手机关键词排名工具
  • 长春鸿祥建设有限公司网站/朝阳seo推广
  • 网站如何设置微信支付功能/快速排名工具免费
  • 做网站赚钱 百度网盟/seo网站推广怎么做
  • 帮传销做网站违法吗/网站怎么收录