我有一个应用程序,我希望它运行第二个设备启动。我做了一些在线挖掘并找到了这段代码:
在我的清单中,我添加了以下内容:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
同样在我的Maifest中我在我的应用程序中添加了这个:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<service android:name=".Airport" android:label="Airport">
<intent-filter>
<action android:name="com.example.airport" />
</intent-filter>
</service>
<receiver
android:name=".receiver.StartMyServiceAtBootReceiver"
android:enabled="true"
android:exported="true"
android:label="StartMyServiceAtBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
然后我将其添加到类中的MainActivity.java中:
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
Intent serviceIntent = new Intent(context, MainActivity.class);
context.startService(serviceIntent);
}
}
但是当我在模拟器中运行时,它确实在启动时运行。我做错了什么?
更新
我创建了一个名为StartMyServiceAtBootReceiver
的活动,看看它是什么样的:
public class StartMyServiceAtBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
Intent serviceIntent = new Intent(context, MainActivity.class);
context.startService(serviceIntent);
}
}
}
但是当我重新启动android(拔掉插头,重新插入)时,它在启动备份时无法启动我的应用程序。我做错了什么?