2010-11-22 2 views
1

finish()를 사용하여 서비스의 활동을 닫을 수 있습니까? 그렇지 않은 경우 서비스에서 활동을 종료하는 적절한 방법은 무엇입니까? 내 서비스에서 활동을 작성 했으므로이를 닫아야합니다.서비스의 활동을 닫는 적절한 방법은 무엇입니까?

+0

꼭 필요한가? 활동은 OS에서 필요에 따라 가비지 수집됩니다. –

답변

1
@Override 
public void onDestroy() { 
    Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show(); 
    Log.d(TAG, "onDestroy"); 
} 

그리고 주요 활동에

finish()를 사용하여 서비스?

직접적으로. 서비스는 정말로 정말로 정말로 finish()에 전화 할 활동에 대한 참조가 없어야합니다.

내 서비스에서 활동을 작성했으며이를 닫아야합니다.

확률은 처음부터 서비스 활동을 시작해서는 안됩니다. 사용자가 불필요하게 방해한다고 느끼면 사용자가 축을 공격합니다.

그렇지 않은 경우 서비스의 활동을 종료하는 적절한 방법은 무엇입니까?

바람직하게는 사용자가 활동을 닫게하십시오. 활동을 시작하여 축을 공격하여 사용자를 방해하지 않은 사용자는 클럽 활동에 방해가되는 활동을 없애 클럽을 방해합니다.

그 외에도 서비스에서 활동으로 메시지를 보내고 활동이 Handler에 원하는대로 처리하도록합니다 (finish()을 포함 할 수 있음).

0

나는 보통 폐쇄 활동을위한 재정의 옵션을 선호 가능한 경우 :

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    Log.d(logTag,"onDestroy"); 
} 

활동을 시작할 수 방법 :

@Override 
public void onStart(Intent intent, int startid) { 
    Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show(); 
    Log.d(TAG, "onStart"); 
    super.onStart(intent, startid); 
} 
+0

감사합니다. 서비스에서 이것을 어떻게 부르겠습니까? 나는 서비스에서 의도를 가지고 활동을 시작했다. – Ryan

+0

그러면 외부 프로그램의 활동에 대한 의도인지 여부에 달려 있습니다. – Scalarr

+0

그것은 여전히 ​​내 패키지 내의 활동입니다. 그래서 그것을 사용하기 시작했습니다 ... Intent sCan = 새로운 의도 (ActionService.this, EmptyProgram.class); 그런 다음 startActivity (sCan); 이제 막 끝내야하지만 서비스에서 끝내고 싶습니다. – Ryan

관련 문제