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