我知道有很多问题,但我真的不知道我的错误在哪里.
我的服务已在AndroidManifest.xml文件中注册
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.app" > ... <service android:name="com.example.android.app.ScheduledService"> </service> </application> </manifest>
我的服务扩展了IntentService
public class ScheduledService extends IntentService { public ScheduledService() { super("ScheduledService"); } @Override protected void onHandleIntent(Intent intent) { Log.d(getClass().getSimpleName(),"I ran!"); } }
我的活动启动服务
public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(getClass().getSimpleName(),"Setting alarm!!"); AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent alarmIntent = new Intent(this,com.example.android.app.ScheduledService.class); PendingIntent pending = PendingIntent.getBroadcast(this,alarmIntent,0); alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,SystemClock.elapsedRealtime() + 10 * 1000,pending); } }
我在日志中没有看到任何异常.还有什么我应该做的设置我的闹钟?
解决方法
如
documentation所示,PendingIntent.getBroadcast()用于检索将执行广播的PendingIntent,如调用Context.sendBroadcast().
您需要调用PendingIntent.getService(),这将启动IntentService:
PendingIntent pending = PendingIntent.getService(this,0);