直接上代码
有个监听开机启动service的类
Alarmreceiver类
Manifest.xml
这样写好后 在虚拟机测试是有效果的 但安装到手机后就不行了 我直接启动service
startService(new Intent(this, AutoRunService.class));
但也是没有反应的 WSAsyncTask并没有执行到 刚接触android不久 求助
public class AutoRunService extends Service {
@Override
public void onCreate() {
super.onCreate();
System.out.println("*****onCreate*****");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i("servicestar", "*****onStart*****");
try {
new WSAsyncTask().execute();
} catch (Exception ex) {
Log.i("e", ex.toString());
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
// objHandler.removeCallbacks(mTasks);
super.onDestroy();
}
class WSAsyncTask extends AsyncTask {
String result = "";
@Override
protected Object doInBackground(Object... params) {
//远程服务器获取数据
return null;
}
}
有个监听开机启动service的类
public class BootBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent mintent) {
if (Intent.ACTION_BOOT_COMPLETED.equals(mintent.getAction())) {
// 启动完成
Intent intent = new Intent(context, Alarmreceiver.class);
intent.setAction("alarm.action");
PendingIntent sender = PendingIntent.getBroadcast(context, 0,intent, 0);
long firstime = SystemClock.elapsedRealtime();
AlarmManager am = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
// 10秒一个周期,不停的发送广播
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstime,
10 * 1000, sender);
}
}
}
Alarmreceiver类
public class Alarmreceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("alarm.action")) {
Intent i = new Intent();
i.setClass(context, AutoRunService.class);
// 启动service
// 多次调用startService并不会启动多个service 而是会多次调用onStart
context.startService(i);
}
}
}
Manifest.xml
<receiver android:name=".BootBroadcast"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" >
</action>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
<receiver
android:name=".Alarmreceiver"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="alarm.action" />
</intent-filter>
</receiver>
<service
android:enabled="true"
android:name=".AutoRunService" >
</service>
这样写好后 在虚拟机测试是有效果的 但安装到手机后就不行了 我直接启动service
startService(new Intent(this, AutoRunService.class));
但也是没有反应的 WSAsyncTask并没有执行到 刚接触android不久 求助