2016-11-10 11 views
-1

私はアンドロイド開発で新規です。私のサービスは、ループを開始する前に死亡した..私はループを開始する前にサービスが終了しました

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

意図インテント=新しいインテント(this、ReminderService.class); startService(インテント); @ VladMatvienko – Maani

答えて

0

利用コードの下にMainActivityのように別のアクティビティからサービスを開始しまし :

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

:以下、あなたの活動からのよう

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; 
    } 


    } 

スタートサービス他のアクティビティでこのサービスにアクセスする場合は、そのアクティビティをサービスにバインドします。

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; 
     } 
    }; 
関連する問題