我正在为Android手机开发公司制作应用程序。我需要在后台运行应用程序,不应该有任何用户交互,如谷歌播放服务。所以我创建了一个应用程序并将其放在“system / app”中,以便用户无法卸载应用程序,但我需要打开应用程序以在后台运行该服务,我该如何跳过它。
答案 0 :(得分:0)
请看这里:Android BroadcastReceiver on startup - keep running when Activity is in Background
在系统启动时调用广播接收器后,应启动粘性服务。看这里:START_STICKY and START_NOT_STICKY
这样,您的应用程序将在系统启动时启动。
答案 1 :(得分:0)
我认为你应该注册一些BroadcastReceiver,所以它会启动你的app。您可以使用boot_completed
动作,如下所示:
public class Autostart extends BroadcastReceiver
{
public void onReceive(Context arg0, Intent arg1)
{
Log.i("Autostart", "**********started************");
}
}
和清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="pack.saltriver" android:versionCode="1" android:versionName="1.0"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".Autostart">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
</manifest>
但您可以使用其他类型,您只需要修改意图的名称。 Here是所有BroadcastReceiver Intent的列表。
答案 2 :(得分:0)
有许多意图过滤器可以用于完成开机或电源插拔。
在这两种情况下,您都可以使用广播接收器来启动活动。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="pack.saltriver" android:versionCode="1" android:versionName="1.0"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".tart">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>