Androidダイナミック置換アプリケーションアイコン
2551 ワード
動的切替アイコンの適用はactivity-aliasとPackageManagerで行う.
manifestsファイル:
ダイナミック切り替えのコードに問題が発生しました.元のコード:
切り替え後、アイコンを切り替えるにはデスクトップに時間がかかります(ROMによって異なります).ネット上では、次のような解決策があります.
この方法は古いかもしれませんが、いくつかのROMでいいですが、いくつかはまだ遅いので、頼りになりません.
探して探して、やっと他のコードの中で解決方法を見つけて、flagを修正します:
顔を隠して涙を流して、こんなに簡単~~~setComponentEnabledSettings方法のflagは以下のように説明します:
オプションのアクションはDONT_KILL_APP-APP 0を閉じない-APPを閉じてリフレッシュするFrameworkメソッドを使うときは、必ずメソッドコメントを見なければなりません!
manifestsファイル:
ダイナミック切り替えのコードに問題が発生しました.元のコード:
getPackageManager().setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
getPackageManager().setComponentEnabledSetting(new ComponentName(this,
getPackageName() + ".MainActivity-second"),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
切り替え後、アイコンを切り替えるにはデスクトップに時間がかかります(ROMによって異なります).ネット上では、次のような解決策があります.
// app, 。
ActivityManager am = (ActivityManager)ctx.getSystemService(Activity.ACTIVITY_SERVICE);
Intent i = new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_HOME);
i.addCategory(Intent.CATEGORY_DEFAULT);
List resolves = pm.queryIntentActivities(i, 0);
for (ResolveInfo res : resolves) {
if (res.activityInfo != null) {
am.killBackgroundProcesses(res.activityInfo.packageName);
}
}
この方法は古いかもしれませんが、いくつかのROMでいいですが、いくつかはまだ遅いので、頼りになりません.
探して探して、やっと他のコードの中で解決方法を見つけて、flagを修正します:
getPackageManager().setComponentEnabledSetting(getComponentName(),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
getPackageManager().setComponentEnabledSetting(new ComponentName(this,
getPackageName() + ".MainActivity-second"),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
0);
顔を隠して涙を流して、こんなに簡単~~~setComponentEnabledSettings方法のflagは以下のように説明します:
// @param flags Optional behavior flags: {@link #DONT_KILL_APP} or 0.
オプションのアクションはDONT_KILL_APP-APP 0を閉じない-APPを閉じてリフレッシュするFrameworkメソッドを使うときは、必ずメソッドコメントを見なければなりません!