때마다 더블 11, 12 새벽, Taobao의 안드로이드 폰 실행기, 살쾡이 아이콘이 아이콘을 두 번 11,12 화제가되고 있습니다. 동적 스위칭 아이콘 명을 달성하기 위해,
MainActivity
패키지 com.example.modifyappdemo; 수입 에는 android.app.Activity; 수입 android.app.ActivityManager; 수입 android.content.ComponentName; 수입 android.content.pm.PackageManager; 수입 android.os.Bundle; 수입 android.support.v7.app.AppCompatActivity; 수입 android.view.View에서; 수입 android.widget.Button; 가져 정적 android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED을; 공공 클래스 MainActivity는 확장 AppCompatActivity이 구현 View.OnClickListener을 { 개인 버튼 changeIcon; 개인 ActivityManager activityManager; 개인 패키지 매니저 패키지 매니저; 개인 부울 의 setIcon = 진정한 ; @보수 보호 공간 에서 onCreate (번들 savedInstanceState) { 슈퍼 .onCreate (savedInstanceState); 된 setContentView (R.layout.activity_main); activityManager = (ActivityManager) 이 .getSystemService (Activity.ACTIVITY_SERVICE); 패키지 매니저 = getPackageManager (); changeIcon = findViewById를 (R.id.changeIcon); changeIcon.setOnClickListener ( 이 께 ); } @보수 공공 무효 의 onclick (보기 V) { 스위치 (v.getId ()) { 경우 R.id.changeIcon : 만약 ( "SecondApp" .equals (인 getTitle ())) { 의 setIcon = 거짓 ; } 다른 { 의 setIcon = 진정한 ; } (packageManager.setComponentEnabledSetting 새로운 ComponentName ( 이 , "com.example.modifyappdemo.MainActivity을" ), 의 setIcon == 사실 ? COMPONENT_ENABLED_STATE_DISABLED : PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP); (packageManager.setComponentEnabledSetting 새로운 ComponentName ( 이 , "com.example.modifyappdemo.changeAfter을" ), 의 setIcon == 사실 ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); 휴식 ; 기본값 : 휴식 ; } } }
AndroidManifest.xml에
<? XML 버젼 = "1.0"인코딩 = "UTF-8" ?> < 매니페스트 의 xmlns : 로이드 = "http://schemas.android.com/apk/res/android" 패키지 = "com.example.modifyappdemo" > < 사용 -permission 안드로이드 : 이름 = "android.permission.KILL_BACKGROUND_PROCESSES" /> < 어플리케이션 안드로이드 : allowBackup = "true"로 안드로이드 : 아이콘 = "@ 밉맵 / ic_launcher" 안드로이드 : 라벨 = "@ 문자열 / APP_NAME" 안드로이드 : roundIcon = "@ 밉맵 / ic_launcher_round " 안드로이드 := "@ 스타일 / AppTheme" > < 활동 안드로이드 : 이름 = "MainActivity." > < 의도 필터 > < 액션 안드로이드 : 이름 = "android.intent.action.MAIN" /> < 카테고리 로이드 이름 = "android.intent.category.LAUNCHER" /> </ 텐트 필터 > </ 활동 > < 활동 별칭 안드로이드 : 아이콘 = "@ 밉맵 / alias_icon" 안드로이드 : 라벨 = "@ 문자열 / app_name2" 안드로이드 : 이름 = "changeAfter" 안드로이드 : targetActivity = "MainActivity." 안드로이드 : 활성화 = "거짓" > < intent- 필터링 > < 활동 로이드 이름 = "android.intent.action.MAIN" /> < 카테고리 로이드 이름 = "android.intent.category.LAUNCHER" /> </ 텐트 필터 > </ 활성 앨리어스 > </ 애플리케이션 > </ 매니페스트 >
strings.xml의
< 자료 > < 문자열 이름 = "APP_NAME" > FirstApp </ 문자열 > < 문자열 이름 = "app_name2" > SecondApp </ 문자열 > </ 자원 >