【问题标题】:Running an application at startup in android在android中启动时运行应用程序
【发布时间】:2017-04-21 16:38:45
【问题描述】:

我需要在启动时运行一个 android 应用程序。我已按照清单文件中有关权限的所有说明,创建了 BroadcastReceiver 并向同一个 Android 项目添加了一个虚拟活动,并至少手动运行该活动一次。 我已经关闭手机,每天多次,应用程序总是正常启动。问题是三四天后,应用程序在手机启动时停止运行,需要再次手动运行 虚拟活动一次以将其功能扩展到其他三四天。 欢迎任何形式的帮助。

【问题讨论】:

  • 在任何 Android 设备上,您都需要在初次安装应用程序后以及用户在应用程序屏幕上的“设置”中按下“强制停止”后运行 Activity。否则,你应该没问题。除了用户点击该按钮时,一些设备在其他时候会做一些愚蠢的事情并采用“强制停止”行为。除了对设备制造商大喊大叫之外,您对此无能为力。
  • 分享一些代码

标签: java android startup


【解决方案1】:

不知道你用的是哪个代码,但我用过这个,它总是能正常工作

public class AutoStart extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) {
            //Do something
        }
    }
}

【讨论】:

  • Bibaswan:我的代码和你说的完全一样。应用程序手动运行一次后,可以正常运行三四天。在那段时间里,我已经多次重启手机,并且应用程序总是毫无问题地启动。但是三四天后它没有启动,需要手动运行它以将其功能扩展到另一个类似的时间段。
  • 我认为当你几天不打开应用程序时,android系统会降低它的优先级。您必须偶尔使用该应用程序
【解决方案2】:

从 Android 3.1 开始,您的应用首先处于“停止”状态(它不同于 onStop())。在停止状态下,您的清单注册 BroadcastReceiver 将不起作用。您必须在安装至少一次后运行您的应用才能使其正常运行。

此外,您不应该像 Commonsware 指出的那样强制停止您的应用程序。强制停止将终止应用程序进程。

【讨论】:

  • 我按照你说的做了,但是应用程序。三四天后停止。
  • 因此,您必须使用BOOT_COMPLETED 在启动时运行活动。对?? 3-4 天后,当它停止工作时,它会显示任何错误消息还是只是在启动时不运行?
  • 你用的是什么设备?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-23
  • 2015-03-25
  • 1970-01-01
相关资源
最近更新 更多