2012-01-15 1 views
0

여러분,네트워크 연결을 사용할 수없는 경우 특정 활동을 무효로하십시오.

네트워킹에 의존하는 Android를 사용하여 앱을 제작하고 싶습니다. 언제 네트워크 연결이 끊어 질지 알 수 없기 때문에 상태를 모니터링하는 서비스를 구축하고 네트워크가 액세스 권한이없는 경우 특정 작업을 중지하려고했습니다.

따라서 내 질문은 내가 그 활동에 대한 참조를 어떻게 찾을 수 있는가? 나는 그것을 이미 시작했다고 가정하고 그것을 파괴 하겠는가?

감사합니다.

답변

0

모든 활동에 대해 BaseClass를 구현하고 ConnectivityManager을 사용하여 네트워크 상태 변경 내용을 듣고 조건에 따라 활동을 완료 할 수 있습니다.

또한 활동을 종료하기 전에 활동이 취소 된 이유를 사용자에게 알립니다.

+0

http://developer.android.com/guide/topics/intents/intents-filters.html 내가 모니터링 부분을 완료하십시오,하지만 어떻게 활동을 죽일하는 단서가 없다 자체를 파괴 (어쩌면 사용자에게 경고 일부 정리 등을)하자 해당 활동의 런타임 인스턴스에 대해 호출 한 다음 destory()를 호출하십시오. 네트워크를 사용할 수 없다는 것을 사용자에게 알립니다! – user717245

+0

그냥 activity 내에서 finish()를 호출하십시오. –

+0

감사합니다. Ravi,하지만 서비스 코드가 손상 될 런타임 활동에 대한 참조를 얻는 방법은 연결이 끊어지는 것을 감지하는 서비스입니다. – user717245

1

INTENT을 사용해야하며 활동에 인 텐트 필터를 사용할 수 있습니다. 이를 위해 "명시 적 의도"를 사용합니다.

이것은 기본적으로 원하는 작업을 메시지로 보내는 방법입니다. 그래서 당신은 내가 참조를 얻을 수, 활동이

+0

안녕하세요, 친절한 답장을 보내 주셔서 감사합니다. 나는 링크를 따라가는 의사를 읽었다. 아직 어떻게해야하는지에 대한 단서가 없다. 활동을 파괴하는 것과 관련된 어떤 행동도 없으므로 action_ *을 고용 할 수 없었던 것 같습니다! 플래그를 사용하려고 시도했지만 액티비티를 다시 시작했지만 코드는 다음과 같습니다. Intent dialogIntent = new Intent(); \t dialogIntent.setComponent (새 ComponentName ("com.example.soft", "com.example.soft.test"))); dialogIntent.addFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); getApplication(). startActivity (dialogIntent); 네트워크를 끄고 테스트 한 후에도 그대로 있습니다. – user717245

+0

의도와 함께 즉시 시도하지 마십시오. 그냥 자신에게'INTENT'을 보내고 그 활동에 대한 핸들 코드를 작성하십시오. 먼저 대상 활동에서받은 의도를 보낼 수 있는지 먼저 테스트 한 다음 해당 목표에서 'finish()'또는 다른 것을 호출하는 함수를 만들면됩니다. – Nanne

+0

고마워요, 야, 너의 제안은 대단해! 나는 그것을 해결하는 방법을 찾으려고 노력하고 싶습니다, 만약 내가 그것을 만들면, 여기에 게시 할 것입니다! – user717245

관련 문제