2012-02-06 2 views
0

나는 (실제로 알람이 아니지만 메일을 보냄)을 설정하는 AlarmManager이 있습니다. 그래서 BroadcastReceiver에서 저는 실제 메일을 보냅니다. 하지만 메일을 보내려면 인터넷이 필요합니다. 따라서 전화가 인터넷에 연결되어 있지 않으면 이메일이 전송되지 않습니다. 내 BroadcastReceiver에서 onReceive() 내부에있는 동작을 어떻게하면 "snooze" 할 수 있습니까? 나는 이걸로 불을 피우는 새로운 수신기를 만들까요?브로드 캐스트 수신자 안드로이드 스케줄 변경

private boolean isNetworkAvailable() { 

     ConnectivityManager cm 
      = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo ai= cm.getActiveNetworkInfo(); 
     return ai!= null; 
    } 

편집 : 제대로 작동합니다. 인터넷 사용 가능 여부를 확인하고 10 분마다 확인하는 IntentService를 사용합니다. IntentService는 내 BroadcastReceiver에서 시작됩니다. 여기에 인터넷이없는 경우 이메일이 처음 전송됩니다.

답변

0

인터넷 연결을 확인하는 백그라운드 서비스 만 사용하십시오.

인터넷을 사용할 수있는 경우 전자 메일 보내기 전후로 인터넷 연결을 확인하는 서비스를 시작하지 않는 한 전자 메일을 보내고 그 후에 서비스를 종료하십시오.

+0

몇 가지 예제 코드가 있습니까? – user713821

+0

감사. 알았어. 솔루션으로 내 게시물을 수정했습니다. – user713821

관련 문제