gpt4 book ai didi

android - 如何告诉应用程序它是从设备启动时启动的?

转载 作者:行者123 更新时间:2023-11-30 04:23:29 26 4
gpt4 key购买 nike

您好,我正在为 android 编写一个从启动启动的应用程序,我想知道是否有一种方法可以告诉应用程序它是从设备启动启动的?如果应用程序是手动启动的(即不是在设备启动时),我需要它做一些不同的事情。我正在使用 BroadcastReceiver 在设备启动时启动应用程序。

最佳答案

您可以制作两个不同的广播接收器,其中一个具有 ACTION_BOOT_COMPLETED用于 intent 过滤器,另一个具有您将使用的其他 intent 过滤器。

或者创建一个具有两个 Intent 过滤器的广播接收器,例如:

<receiver android:name=".BatteryReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
<intent-filter>
<action android:name="SOMETHING_ELSE"/>
</intent-filter>
</receiver>

然后在 onReceiver 中做:

if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
// do code for phone just powered on
} else {
// do code for phone is already on
}

编辑:以上假设您在两种情况下使用 BroadcastReceiver,从您的问题来看可能并非如此。

因此,如果您要启动一个Activity(或服务),那么在BroadcastReceiver 代码中,您可以:

Intent i = new Intent(context, MyClass.class);
i.putExtra("STARTED_FROM_BOOT", true);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);

然后在 Activity 中,您可以:

if (getIntent().hasExtra("STARTED_FROM_BOOT")){
// do your code for when started from boot.
}

如果我需要添加任何内容,请告诉我。

关于android - 如何告诉应用程序它是从设备启动时启动的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8913717/

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