我已閱讀關於此問題的幾個答案,但發佈的解決方案對我無效。在我的代碼中可能有錯或錯過了。 我需要我的應用程序沒有任何活動,在啓動完成後自動啓動。 如果我包括一個活動,只是爲了第一次啓動應用程序(退出停止狀態),一切正常。 非常感謝您的幫助。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不會得到任何意圖,如果用戶不啓動你的應用程序。如果它沒有得到任何意圖,它也不能啓動服務。 –
你還在想什麼?我的回答是對的?如果是這樣,請評價或投票。 –