我已阅读关于此问题的几个答案,但发布的解决方案对我无效。在我的代码中可能有错或错过了。 我需要我的应用程序没有任何活动,在启动完成后自动启动。 如果我包括一个活动,只是为了第一次启动应用程序(退出停止状态),一切正常。 非常感谢您的帮助。android;启动后服务自动启动:FLAG_INCLUDE_STOPPED_PACKAGES不起作用
这是我的代码。
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="zag.salva" >
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<receiver
android:name=".Salva_autostart"
android:enabled="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service
android:name=".Salva_servizio"
android:enabled="true" >
<intent-filter>
<action android:name=".Salva_servizio" />
</intent-filter>
</service>
</application>
Salva_autostart.java
public class Salva_autostart extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Intent intento = new Intent(context, Salva_servizio.class);
intento.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
context.startService(intento);
}
}
Salva_servizio.java
public class Salva_servizio extends Service
{
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
// Task execution
Salva_invio2 invio = new Salva_invio2();
invio.esegui(this);
return Service.START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent)
{
return null;
}
}
但这将是默认行为;这就是为什么我介绍setFlags()语句;这不是这样吗?谢谢 – MarioZ
应用程序在首次安装但尚未启动时以及用户手动停止时(在“管理应用程序”中)处于停止状态。默认情况下,系统将FLAG_EXCLUDE_STOPPED_PACKAGES添加到所有广播意图,并且您的BroadcastReceiver正在侦听系统广播。所以基本上你的Salva_autostart不会得到任何意图,如果用户不启动你的应用程序。如果它没有得到任何意图,它也不能启动服务。 –
你还在想什么?我的回答是对的?如果是这样,请评价或投票。 –