2012-03-31 3 views
1

활동에서 의도를 통해 서비스로 데이터를 보내려고합니다. 활동에서 서비스로 데이터를 보내는 방법

이 당신은 텐트와 서비스에 활동에서 데이터를 전송하지 않습니다

public class SampService extends Service implements Runnable { 

@Override 
public IBinder onBind(Intent intent) { 
    // TODO Auto-generated method stub 
    return null; 
} 
public void onCreate() 
{ 
    Toast.makeText(getApplicationContext(), "Service Created", Toast.LENGTH_LONG).show(); 
    String startTimeHour,startTimeMinute,endTimeHour,endTimeMinute; 



} 
public void onStart() 
{ 
    Thread t=new Thread(this); 
    t.start(); 
} 
public void run() { 



} 

답변

4

SampleService는 서비스이므로 대신 startActivity(i);을 사용해야합니다. 그러면 의도에 첨부 된 데이터를 서비스에서 검색 할 수 있습니다.

2

내 서비스 클래스의 코드 내 활동 클래스

Intent i= new Intent(this,SampService.class); 

    i.putExtra("startTimeHour", timePicker1.getCurrentHour()); 
    i.putExtra("endTimeHour", timePicker2.getCurrentHour()); 
    i.putExtra("startTimeMinute",timePicker1.getCurrentMinute()); 
    i.putExtra("endTimeMinute", timePicker2.getCurrentMinute()); 
    startActivity(i); 

의 코드입니다. 활동은 서비스에 바인딩해야하고 바인더에서 메소드를 호출합니다. http://developer.android.com/guide/topics/fundamentals/services.htmlhttp://developer.android.com/reference/android/app/Service.html

또 다른 옵션은 활동에 브로드 캐스트 인 텐트를 데이터로 보내면 서비스에서 수신하도록 BroadcastReceiver를 설정할 수 있습니다.

서비스를 사용하려는 목적은 무엇입니까? 어쩌면 문제에 대한 더 쉽거나 가벼운 해결책이있을 수 있습니다.

+0

"활동의 데이터를 의도가있는 서비스로 보내지 않습니다." 네, 그렇습니다. 'startService()'를 사용하여'Intents '형식으로 명령을 보내는 명령 패턴입니다. [documenation] (http://developer.android.com/guide/topics/fundamentals/services.html) 인용하기 "서비스 시작 요청이 여러 번 발생하면 해당 서비스의 onStartCommand()에 대한 여러 호출이 발생하지만 단 하나의 요청 중지하려면 stopSelf() 또는 stopService()를 사용하여) 서비스를 중지해야합니다. " 이것은'IntentServices'와 잘 어울립니다. – CommonsWare

+0

@David Wassler 서비스를 사용하여 시간 값을 확인하고 시작 시간과 종료 시간 사이에 무음 모드를 설정합니다. –

+0

그렇다면 활동이 없을 때에도 서비스가 실행되어야합니다. @Akhil의 솔루션이 효과가 있습니다. [이 질문에 대한 답변] (http://stackoverflow.com/questions/4252371/unable-to-get-data-from-activity-to-service)는'startService()'에서 사용 된 Intent에서 값을 전달하는 법을 보여줍니다. 그리고 서비스의'onStartCommand()'에서 그들을 검색하는 방법. –

관련 문제