我是应该重启手机不断的设定次数基本的Android应用程序。 为了做到这一点,我需要在手机启动时启动的应用程序。 为了这一点,我基本上按照上的说明, 在这里 ,添加权限清单,并创建一个启动活动一个BroadcastReceiver类。 下面是我的一些相关的代码:
public class StartMyServiceAtBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("StartMyServiceAtBootReceiver called.");
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
// Intent activityIntent = new Intent("com.example.rebooter.MainActivity");
Intent activityIntent = new Intent(context,MainActivity.class);
activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(activityIntent);
}
}
}
从清单文件:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.rebooter"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</activity>
<service
android:name=".RebootManager"
android:label="Reboot Manager" >
<action android:name="com.example.rebooter.RebootManager" />
</service>
<receiver android:name=".StartMyServiceAtBootReceiver"
android:enabled="true"
android:exported="true"
android:label="StartMyServiceAtBootReceiver" >
<action android:name="android.intent.action.BOOT_COMPLETED" />
</receiver>
</application>
在Eclipse仿真器,应用程序似乎正常工作。 也就是说,虽然我的模拟器的根源并非是和手机不执行重新启动命令正确,我也看到,在启动时,正确的活动开始。
现在,当我尝试它运行Android 4.0.4特定的系统上,一切都在应用正确除非在启动时启动工作。 有任何想法吗?
我试图消除任何硬件问题的可能性(因为我没有使用市售发布的手机)通过安装其他应用程序在启动时启动,并证实它确实不开机启动时,它确实正在运行的应用下现身作为启动后缓存的过程。
我将不胜感激任何帮助。 让我知道如果你需要任何额外的信息。