3

从这里知道 android 3.1 及更高版本不支持启动完整意图。但在我的应用程序中。我想在设备重新启动后在我的应用程序中自动启动服务。我不希望用户手动启动我的应用程序。我该怎么做 ?提前感谢您的帮助。

4

3 回答 3

0

是什么让您认为不再发送 ACTION_BOOT_COMPLETED 广播?我经常使用它,其他人也是如此。只要确保您的清单中有 RECEIVE_BOOT_COMPLETED 权限即可。

于 2012-12-07T07:27:48.993 回答
0

尝试以下步骤在启动后启动应用程序:

创建一个扩展广播接收器的类:

     public class AutostartService extends BroadcastReceiver {  

      @Override  
      public void onReceive(Context context, Intent intent) {
      System.out.println("in broad....");

       if ((intent.getAction() != null) && (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")))
    {
        System.out.println("in broadcast receiver.....");
        Intent i = new Intent(context, Splash.class);  
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(i);  
         }
        }

     }

并将其添加到android清单文件中:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

        <receiver android:name=".AutostartService"   android:enabled="true" 
        android:exported="true">

    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>

        </receiver>  
于 2012-12-07T07:29:55.283 回答
0

好吧,这已经很老了,可能大多数人都学会了它,但仍然可能有用。

从 3.1+ 开始,为了接收BOOT_COMPLETED,您的应用程序必须由用户至少启动一次。

注意:此规则不适用于/system应用

于 2015-10-15T19:01:30.330 回答