gpt4 book ai didi

android - 启动没有 Activity 的android应用程序

转载 作者:IT老高 更新时间:2023-10-28 22:17:20 38 4
gpt4 key购买 nike

我有一个旨在仅作为服务运行的应用程序(无界面,仅在后台运行)。我的 AndroidManifest.xml 中没有提到任何 Activity ,但在手机启动时放置了一个接收器来启动应用程序。

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<service
android:enabled="true"
android:name=".MyAppService">
<intent-filter>
<action
android:name = "me.myapp.MyAppService">
</action>
</intent-filter>
</service>
<receiver
android:enabled="true"
android:name=".BootReceiver">
<intent-filter>
<action android:name = "android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application>

问题在于,当我开发(使用 Eclipse)应用程序时,我需要经常测试我的更改。当我运行应用程序时(我的手机以 Debug模式连接),我收到了类似的消息

[2011-12-14 00:18:40 - MyApp] Android Launch!
[2011-12-14 00:18:40 - MyApp] adb is running normally.
[2011-12-14 00:18:40 - MyApp] No Launcher activity found!
[2011-12-14 00:18:40 - MyApp] The launch will only sync the application package on the device!
[2011-12-14 00:18:40 - MyApp] Performing sync

如何在运行时启动应用程序,而不必每次都重新启动它?


编辑这对于 Android 3.1 或更高版本不再可行。 Source

最佳答案

除了 EboMike 提到的两个选项:您始终可以通过命令行发送 BOOT_COMPLETED 广播,而不是重新启动手机。

使用

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

这将导致实际重启后的情况,并且还会触发任何 3rd 方应用启动接收器。在终端中键入一次后,您通常可以通过按向上箭头键然后在大多数操作系统上返回来重复它。或者,您可以将其包含在重新安装应用程序后触发的脚本中。


如果您只想将广播限制在您的应用中,您还可以指定一个组件:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -n your.app.packagename/.YourReceiverClassName

这只会将重启广播发送到您的接收器。不会调用所有其他应用程序。

关于android - 启动没有 Activity 的android应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8497885/

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