亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android App多個(gè)入口的實(shí)現(xiàn)方法

 更新時(shí)間:2018年02月08日 08:33:34   作者:書柜里的松鼠  
這篇文章主要介紹了Android App多個(gè)入口的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

經(jīng)??吹接蠥pp提供多個(gè)入口,就是桌面上顯示有多種圖標(biāo),點(diǎn)不同圖標(biāo)進(jìn)入不同的功能頁(yè)。

基本實(shí)現(xiàn)很簡(jiǎn)單,以下是步驟。

1. AndroidManifest.xml里注冊(cè)別名。

在 <application> 里添加 <activity-alias>

<activity-alias
   android:name=".test"
   android:enabled="false"
   android:icon="@drawable/applogo"
   android:label="@string/app_name"
   android:launchMode="singleTask"
   android:clearTaskOnLaunch="true"
   android:targetActivity=".splashActivity">
   <intent-filter>
    <action android:name="android.intent.action.MAIN"/>
    <category android:name="android.intent.category.LAUNCHER"/>
   </intent-filter>
  </activity-alias>

說明一下:

android:name 參數(shù)就是這個(gè)入口的名稱。

android:enabled 打開和關(guān)閉的參數(shù)。

android:icon 入口顯示的圖標(biāo),這樣就可以給不同的入口設(shè)置不同的圖標(biāo)了。

android:label 就是桌面上顯示的名稱。

android:targetActivity 是重點(diǎn),就是你點(diǎn)擊了不同的入口會(huì)選擇進(jìn)入的頁(yè)面。通過這個(gè)就能設(shè)置不同入口的不同功能了。

搞定,So easy!。

不要急,我們拓展一下。

2.動(dòng)態(tài)更新入口。

剛才我們?cè)O(shè)置了``````,通過名稱,我們就可以使用 PackageManager 對(duì)他進(jìn)行操作了。

假設(shè)我們有個(gè)主要的 LAUNCHER ,像這樣名叫 splashActivity :

<activity
   android:name=".splashActivity"
   android:configChanges="orientation|keyboardHidden|screenSize"
   android:label="@string/app_name"
   android:screenOrientation="portrait"
   android:theme="@style/FirstTheme">
   <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
  </activity>

以及一個(gè)上面這樣的 activity-alias

我們通過 PackageManager 的 setComponentEnabledSetting 方法就可以關(guān)閉和打開入口:

private ComponentName mDefault = getComponentName();
 private ComponentName mDoubleSpring = new ComponentName(getBaseContext(),"com.boosj.boosjapp.test");
 private PackageManager mPm = getApplicationContext().getPackageManager();

 disableComponent(mDefault);
 enableComponent(mDoubleSpring);
 
 private void enableComponent(ComponentName componentName) {
  mPm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP);
 }

 private void disableComponent(ComponentName componentName) {
  mPm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
 }

這個(gè)例子中就關(guān)閉了主入口,僅僅保留了test入口。執(zhí)行后查看桌面就會(huì)發(fā)現(xiàn)只剩下test的入口圖標(biāo)了。

當(dāng)然,也可以給他加上條件,實(shí)現(xiàn)動(dòng)態(tài)自動(dòng)更新。

private ComponentName mDefault = getComponentName();
 private ComponentName mDoubleSpring = new ComponentName(getBaseContext(),"com.boosj.boosjapp.test");
 private PackageManager mPm = getApplicationContext().getPackageManager();

  /**
   * 計(jì)算是否在日期范圍內(nèi)
   */
  try {
   Date date = new Date();
   Log.d("LOGCAT",mathFactory.Date2ms("2018-03-01 00:00:00")+"_"+date.getTime());
   if (mathFactory.Date2ms("2018-03-01 00:00:00")>date.getTime()) {
    disableComponent(mDefault);
    enableComponent(mDoubleSpring);
   }else {
    enableComponent(mDefault);
    disableComponent(mDoubleSpring);
   }
  }catch (Exception e){
   enableComponent(mDefault);
   disableComponent(mDoubleSpring);
  }

 private void enableComponent(ComponentName componentName) {
  mPm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP);
 }

 private void disableComponent(ComponentName componentName) {
  mPm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
 }

這個(gè)例子中,實(shí)現(xiàn)了2018.3.1日前桌面會(huì)顯示 activity-alias 的圖標(biāo),而原來的主要圖標(biāo)被隱藏了。等到2018.3.1過完,圖標(biāo)又回復(fù)原樣,

3.一個(gè)小問題。

這個(gè)方法有個(gè)問題,就是在主 LAUNCHER disable后,如果要更新,就會(huì)報(bào)找不到 LAUNCHER 文件的錯(cuò)誤而使App崩潰。而不讓更新顯然是不可能的。所以那種只顯示一個(gè)圖標(biāo),按條件動(dòng)態(tài)更新的需求,用此方法是恐怕不能做到了。

(或者有什么更好的主意,歡迎探討。)

這個(gè)方法其實(shí)本來是想做App圖標(biāo)的動(dòng)態(tài)更新的。(然而最終失敗了,具體原因就是上面說的崩潰問題。)

還是把他作為多入口的方法記錄一下吧。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android 桌面快捷方式實(shí)現(xiàn)實(shí)例詳解

    Android 桌面快捷方式實(shí)現(xiàn)實(shí)例詳解

    這篇文章主要為大家介紹了Android 桌面快捷方式實(shí)現(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 淺談Flutter 中漸變的高級(jí)用法(3種)

    淺談Flutter 中漸變的高級(jí)用法(3種)

    這篇文章主要介紹了淺談Flutter 中漸變的高級(jí)用法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 關(guān)于androidstuio導(dǎo)入系統(tǒng)源碼的問題

    關(guān)于androidstuio導(dǎo)入系統(tǒng)源碼的問題

    小編最近在做系統(tǒng)源碼導(dǎo)出來的小項(xiàng)目,在導(dǎo)入androidstudio過程中遇到過一些問題,本文以Schedule power on off為例給大家詳細(xì)介紹,需要的朋友參考下吧
    2021-06-06
  • Android USB轉(zhuǎn)串口通信開發(fā)實(shí)例詳解

    Android USB轉(zhuǎn)串口通信開發(fā)實(shí)例詳解

    這篇文章主要介紹了 Android USB轉(zhuǎn)串口通信開發(fā)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 基于Android studio3.6的JNI教程之ncnn人臉檢測(cè)mtcnn功能

    基于Android studio3.6的JNI教程之ncnn人臉檢測(cè)mtcnn功能

    這篇文章主要介紹了基于Android studio3.6的JNI教程之ncnn之人臉檢測(cè)mtcnn功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • onMeasure被執(zhí)行兩次原理解析

    onMeasure被執(zhí)行兩次原理解析

    這篇文章主要為大家介紹了onMeasure被執(zhí)行兩次原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Android Studio 3.0 Gradle 配置變更

    Android Studio 3.0 Gradle 配置變更

    這篇文章主要介紹了Android Studio 3.0 Gradle 配置變更的相關(guān)知識(shí),即多渠道打包變更和更改打包命名及路徑的代碼,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-03-03
  • Android仿搜狐視頻、微視等列表播放視頻功能

    Android仿搜狐視頻、微視等列表播放視頻功能

    這篇文章主要為大家詳細(xì)介紹了Android仿搜狐視頻、微視等列表播放視頻功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 詳解Flutter中網(wǎng)絡(luò)框架dio的二次封裝

    詳解Flutter中網(wǎng)絡(luò)框架dio的二次封裝

    其實(shí)dio框架已經(jīng)封裝的很好了,但是在實(shí)戰(zhàn)項(xiàng)目中,為了項(xiàng)目可以統(tǒng)一管理,還是需要對(duì)dio框架進(jìn)行二次封裝。本文將詳細(xì)講解一下dio如何二次封裝,需要的可以參考一下
    2022-04-04
  • Android仿微信右上角點(diǎn)擊加號(hào)彈出PopupWindow

    Android仿微信右上角點(diǎn)擊加號(hào)彈出PopupWindow

    這篇文章主要為大家詳細(xì)介紹了Android仿微信右上角點(diǎn)擊加號(hào)彈出PopupWindow,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04

最新評(píng)論