我正在使用安卓系统。
我有一个我正在开发的应用程序,它使用一个 Activity 来设置特定的用户输入值,然后服务使用这些值来提供基于这些值的警报。进行研究时,我确定了如何在手机启动时启动应用程序,但是,我真正想要的是启动服务但不将应用程序加载到屏幕上。目前,当我打开设备时,整个应用程序都会加载到屏幕上,然后我必须退出它。
我已经下载了具有设置界面但在后台运行的类似程序。这是怎么做的?
我正在使用安卓系统。
我有一个我正在开发的应用程序,它使用一个 Activity 来设置特定的用户输入值,然后服务使用这些值来提供基于这些值的警报。进行研究时,我确定了如何在手机启动时启动应用程序,但是,我真正想要的是启动服务但不将应用程序加载到屏幕上。目前,当我打开设备时,整个应用程序都会加载到屏幕上,然后我必须退出它。
我已经下载了具有设置界面但在后台运行的类似程序。这是怎么做的?
首先,您必须创建一个接收器:
public class BootCompletedReceiver extends BroadcastReceiver {
final static String TAG = "BootCompletedReceiver";
@Override
public void onReceive(Context context, Intent arg1) {
Log.w(TAG, "starting service...");
context.startService(new Intent(context, YourService.class));
}
}
然后向您的 AndroidManifest.xml 添加权限:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
并注册意图接收器:
<receiver android:name=".BootCompletedReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
完成此操作后,您的应用程序(Application
类)将与服务一起运行,但没有活动。
啊,不要把你的应用程序放在 SD 卡(APP2SD 或类似的东西)上,因为它必须驻留在主存储器中才能在启动完成后立即可用。