gpt4 book ai didi

android-activity - 从 .apk 文件升级家庭启动器应用程序

转载 作者:行者123 更新时间:2023-11-29 01:39:01 25 4
gpt4 key购买 nike

我正在尝试从存储在外部 SD 卡中的 .apk 文件升级家庭应用程序。但是,波纹管错误出现无穷大,然后设备自行重新启动。

09-25 11:58:44.040: I/ActivityManager(1313):   Force finishing activity ActivityRecord{4238d680 u0 com.jkpark.cluster/.MainActivity}
09-25 11:58:44.040: I/ActivityManager(1313): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.jkpark.cluster/.MainActivity} from pid 0

我猜 ActivityManager 在我调用事件重新安装我的家庭应用程序时启动任何家庭应用程序,但不存在任何其他家庭应用程序。所以 ActivityManager 强制启动,然后一次又一次地调用启动家庭应用程序。

当我安装另一个分类为“android.intent.category.HOME”的家庭应用程序并升级我的家庭应用程序时,它工作正常。

但是,我想在不安装任何其他家庭应用程序的情况下进行升级。所以,请有人帮助我。谢谢。

最佳答案

我遇到了类似的问题。在启动器更新过程中,Android 操作系统没有要运行的主页 Activity 。发生这种情况是因为一个线程正在安装并且一个线程正在尝试同时运行 luncher。这个问题很容易通过创建另一个启动器来解决,我们称之为启动器切换器。此启动器只有一个用途 - 运行您原来的躺椅。对我来说就像魅力一样。这是启动器切换器的代码。

    private void runLauncher() {
if(isMyLauncherDefault()) {
unsetThisLauncherAsDefault();
}

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(LAUNCHER_PACKAGE);
startActivity(LaunchIntent);
}
}, TWO_SECONDS_IN_MILLISECONDS);
}

private boolean isMyLauncherDefault() {
final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
filter.addCategory(Intent.CATEGORY_HOME);

List<IntentFilter> filters = new ArrayList<IntentFilter>();
filters.add(filter);

final String myPackageName = getPackageName();
List<ComponentName> activities = new ArrayList<ComponentName>();
PackageManager packageManager = (PackageManager) getPackageManager();

packageManager.getPreferredActivities(filters, activities, LAUNCHER_SWITCHER_PACKAGE);

if(activities.size() == NO_LAUNCHER)
return true;

for (ComponentName activity : activities) {
if (myPackageName.equals(activity.getPackageName())) {
return true;
}
}
return false;
}

private void unsetThisLauncherAsDefault() {
getPackageManager().clearPackagePreferredActivities(getPackageName());
}

关于android-activity - 从 .apk 文件升级家庭启动器应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25988474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com