8

我需要知道为什么我的应用在安卓真机启动后没有立即运行?我的应用程序运行但在启动几秒钟后。

我的代码是

public class AutoStart extends BroadcastReceiver{

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
         if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){
                Intent i = new Intent(context, MyActivity.class);
                i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(i);
            }
    }

}

我的活动正在运行,但在启动几秒钟后完成。有可能减少这几秒钟吗?

我想立即运行我的应用程序。我不想让用户访问电话。

4

3 回答 3

15

这可以提高您的优先级,但仍然会有一些延迟。由于android首先加载其操作系统并且所有其他活动都开始了。

<receiver
    android:name=".AutoStart"
    android:enabled="true"
    android:exported="true"
    <intent-filter android:priority="1000">
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>
于 2013-06-05T06:25:07.347 回答
2

我也遇到了这个问题。对于仍在寻找解决方案的任何人:

我想立即运行我的应用程序。我不想让用户访问电话。

考虑将您的应用程序变成家庭启动器。在清单中进行更改:

添加到您的活动中

android:launchMode="singleTask"

添加到活动中的意图过滤器

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.HOME" />

之后它将立即与系统一起启动,而不向用户显示其他任何内容。

于 2020-09-06T19:11:10.493 回答
1

Android系统在启动完成时做了很多工作。因此意图可能会延迟。根据电话功能,意图延迟时间会有所不同。

于 2013-06-05T06:15:19.313 回答