2016-11-10 2 views
-1

Я новичок в развитии Android. Моя служба убит перед началом цикла .. я начал обслуживание от другой деятельности, как MainActivityСлужба убита до начала цикла

package com.example.ch_m_usman.sharedtasklist.Services;   
    import android.app.IntentService; 
    import android.content.Intent; 
    import android.util.Log; 

    public class ReminderService extends IntentService {   
     public ReminderService() { 
      super("Reminder Service"); 
     } 

     @Override 
     protected void onHandleIntent(Intent intent) { 
    Log.e("check","")  
    //Loop does not start. 

      for (int i=0;i<5;i++){ 
       Log.e("Inside for",""); 
      } 

     } 
    } 
//How to use loop in intent service 
+0

* Сервис, убитый до начала цикла *, откуда вы это знаете? как вы начали службу? откуда? – Selvin

+0

показать, как вы начинаете услугу –

+0

Цель намерения = новое намерение (это, ReminderService.class); startService (намерение); @VladMatvienko – Maani

ответ

0

Использование ниже код:

public class TaskConfirm extends IntentService { 


     private final IBinder mBinder = new LocalBinder(); 


     public TaskConfirm() { 
      super("TaskConfirm"); 
      setIntentRedelivery(true); 
     } 

     @Override 
     public void onCreate() { 
      super.onCreate(); 
      //Initilise your objects here like below... 
      taskIdList=new ArrayList<String>(); 
     } 

     @Override 
     public int onStartCommand(Intent intent, int flags, int startId) 
     { 

      return super.onStartCommand(intent, flags, startId); 
     } 

     @Override 
     protected void onHandleIntent(Intent intent) { 

      // get intent data here like below if required...... 

      if (intent != null) { 

       String taskId=intent.getStringExtra("taskId"); 

       } 
       // apply your loop here ....... 
       for (int i=0;i<5;i++){ 
        Log.e("Inside for","");} 


     } 




public class LocalBinder extends Binder { 
     public TaskConfirm getService() { 
      return TaskConfirm.this; 
     } 
    } 


    @Override 
    public IBinder onBind(Intent intent) { 
     return mBinder; 
    } 


    } 

сервис Start, как показано ниже от вашей деятельности:

Intent serviceIntent = new Intent(context, TaskConfirm.class); 
    // put some extra data if required 
    serviceIntent.putExtra("taskId","1"); 
    startService(serviceIntent); 

Если вы хотите получить доступ к этой услуге в другой деятельности, связывайте эту операцию с сервисом:

protected void onStart() { 
      super.onStart(); 

      Intent intent = new Intent(this, TaskConfirm.class); 
      bindService(intent, mConnection, Context.BIND_AUTO_CREATE); 
     } 



private ServiceConnection mConnection = new ServiceConnection() { 

     @Override 
     public void onServiceConnected(ComponentName className, 
             IBinder service) { 

      TaskConfirm.LocalBinder binder = (TaskConfirm.LocalBinder) service; 
      mService = binder.getService(); 
      mBound = true; 

      // do your task on service-connected... 

     } 

     @Override 
     public void onServiceDisconnected(ComponentName arg0) { 
      mBound = false; 
     } 
    }; 
Смежные вопросы