问题描述
- android中启动服务的问题
- 我想在一个活动开始时调用一个服务。
这是Service class:public class UpdaterServiceManager extends Service {private final int UPDATE_INTERVAL = 60 * 1000;private Timer timer = new Timer(); private static final int NOTIFICATION_EX = 1;private NotificationManager notificationManager;public UpdaterServiceManager(){}@Overridepublic IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null;}@Override public void onCreate() { //code to execute when the service is first created} @Override public void onDestroy() { if (timer != null){ timer.cancel(); } }@Overridepublic int onStartCommand(Intent intent int flags int startid) { notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); int icon = android.R.drawable.stat_notify_sync; CharSequence tickerText = ""Hello""; long when = System.currentTimeMillis(); Notification notification = new Notification(icon tickerText when); Context context = getApplicationContext(); CharSequence contentTitle = ""My notification""; CharSequence contentText = ""Hello World!""; Intent notificationIntent = new Intent(this Main.class); PendingIntent contentIntent = PendingIntent.getActivity(this notification.setLatestEventInfo(context contentTitle contentText contentIntent); notificationManager.notify(NOTIFICATION_EX notification); Toast.makeText(thisStarted!"" Toast.LENGTH_LONG); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { // Check if there are updates here and notify if true } } 0 UPDATE_INTERVAL); return START_STICKY;}private void stopService() { if(timer != null) timer.cancel();}}
这是调用Service的方法:
Intent serviceIntent = new Intent(); serviceIntent.setAction(""cidadaos.cidade.data.UpdaterServiceManager""); startService(serviceIntent);
可结果是没有调用成功。上面的代码块是在activity中的onCreate方法里调用的。我调试过了也没有抛出异常。
请大牛指点错误之处,谢谢。
解决方案
检查下看在Manifest中有没有注册这个Service,我有时候会忘记注册,导致花了很长时间来解决。
解决方案二:
startService(new Intent(this MyService.class));<application android:icon=""@drawable/ic_launcher"" android:label=""@string/app_name"" > ... <service android:name="".MyService"" android:label=""My Service"" > </service></application>
时间: 2024-10-09 17:57:04