2017-11-13 8 views
0

내가 원하는 것은 버튼을 클릭하면 즉시 서비스를 시작합니다. 서비스가 시작되면 다른 활동을 즉시 시도합니다. 서비스를 시작하고 동시에 다른 활동으로 리디렉션하는 방법은 무엇입니까?

는 여기를 달성하기 위해 내 코드입니다 :

button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
     //here I start the service 
     Intent intent = new Intent(MyActivity.this, UploadService.class); 
       intent.putExtra(UploadService.ID,id); 
     startService(intent); 

     //after start the service,I want to redirect to Activity2.class 
     Intent intent1 = new Intent(MyActivity.this,Activity2.class); 
     startActivity(intent1); 

     } 
} 

하지만이 작업을 수행 할 때 서비스가 시작되지 않으며,없는 대신 이전 활동 리디렉션, Activity2.class로 리디렉션. ,

@Override 
protected void onHandleIntent(Intent intent) { 
    //other code here 

    Intent intent1 = new Intent(MyActivity.this,Activity2.class); 
    startActivity(intent1); 
} 

그러나 아직 서비스를 시작하지에 의도 :

나는 여전히 onHandleIntent(Intent intent)Service.class의 문제가 여기에 같은

내부 intent을 시도 내가 UploadService.class에 뭘하려 이전 활동 (MyActivity.class가 의도 한 활동)

그럼 Service을 시작한 직후 다른 activity으로 리디렉션 할 수 있습니까?

편집 : 나는 이미 같은 매니페스트에 UploadService를 선언 :

<service 
    android:name=".services.UploadService" 
    android:enabled="true"> 
</service> 

을 난 아직도 여기 실종 그래서?

+0

를 사용해서 실행하면? – Kuls

+0

그냥'.this'를 사용하면 해결할 수 없습니다. 잘못했다면 올바른 방법을 말해주십시오. – ken

+0

@ken은 서비스의 매니 페스트 decleration을 업데이트하고 서비스를 확장하는 서비스 클래스를 확인하십시오. –

답변

0

manifest.xml에 서비스 클래스를 등록했는지 확인하십시오. 서비스 클래스 이름을 '서비스'에서 다른 이름으로 변경해보십시오. Service.java 클래스는 System 클래스이므로

더 명확한 설명이 첫째 앱이 실행되지 않았거나 확인 편집

startService(new Intent(context, MyService.class)); 

아래와 같은 서비스를 시작하십시오. 응용 프로그램이 실행되고 있지 않으면이 코드를 호출하십시오.
Intent i = new Intent(context,SecondActivity.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
context.startActivity(i); 

이 코드는 서비스에서이 호출하는 경우 ** MyActivity.this ** 컨텍스트를 사용한 이유는

Intent i = new Intent(context,SecondActivity.class);  
context.startActivity(i); 
+0

이미 manifest에 선언하고 있습니다. Service는 Service.class가 아닌 Service.class가 아닌 실제 값을 여기에 씁니다. – ken

+0

putExtra를 의도로 사용해야합니다. 어떻게하면 ur 솔루션을 사용하여 startService를 putExtra에 넣을 수 있습니까? – ken

+0

startService (새 인 텐트 (context, MyService.class) .putExtra (Service.ID, id)); 이것을 시도하십시오 –