2012-09-12 4 views
0

브로드 캐스트를 사용하여 연결을 해제 한 다음 인터넷에 데이터를 업로드할지 확인합니다. 문제는이 방송이 갑자기 불렀다는 것입니다. 나는 그 순간에 부름을 받기를 원하지 않는다. 나는 그 순간에 어떻게이 방송을 잠글 수 있을지 모르겠다. 이 서비스이기 때문에Android - BrodcastReceiver가 예기치 않게 호출 됨

class Broadcast_Reciver extends BroadcastReceiver implements Variables { 

    CheckConexion cc; 

    @Override 
    public void onReceive(Context contxt, Intent intent) { 

     // Cuando hay un evento, lo diferenciamos y hacemos una acción. 

     if (intent.getAction().equals(SMS_RECEIVED)) { 
      Sms sms = new Sms(null, contxt); 
      sms.uploadNewSms(intent); 
     } else if (intent.getAction().equals(Intent.ACTION_BATTERY_LOW)) { 
      // st.batterylow(contxt); 
     } else if (intent.getAction().equals(Intent.ACTION_POWER_CONNECTED)) { 
      // st.power(1, contxt); 
     } else if (intent.getAction().equals(Intent.ACTION_POWER_DISCONNECTED)) { 
      // st.power(0, contxt); 
     } else if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED) 
       || intent.getAction().equals(Intent.ACTION_PACKAGE_CHANGED) 
       || intent.getAction().equals(Intent.ACTION_PACKAGE_REMOVED)) { 
      Database db = new Database(contxt); 
      if (db.open().Preferences(4)) { 
       Uri data = intent.getData(); 
       new ListApps(contxt).import_app(intent, contxt, data, 
         intent.getAction()); 
      } 
      db.close(); 
     } else if (intent.getAction().equals(
       ConnectivityManager.CONNECTIVITY_ACTION)) { 
      cc = new CheckConexion(contxt); 
      if (cc.isOnline()) { 
       /* 
       * Database db = new Database(contxt); if (db.open() != null) { 
       * if (db.move() == 1) { new UploadOffline(contxt); } 
       * db.close(); 
       */ 

      } 
     } 

    } 
} 

나는 자바에 방송을 등록하고있어이 XML 파일에없는 파일 :

여기 내 브로드 캐스트 리시버 클래스의 코드입니다. 내가 그것을 등록 할 때

이 코드를 살펴 보자 :

 Broadcast_Reciver r = new Broadcast_Reciver(); 
     IntentFilter i = new IntentFilter(); 
     i.addAction(SMS_RECEIVED); 
     i.addAction(Intent.ACTION_BATTERY_LOW); 
     i.addAction(Intent.ACTION_POWER_CONNECTED); 
     i.addAction(Intent.ACTION_POWER_DISCONNECTED); 
     i.addAction(Intent.ACTION_CALL_BUTTON); 
     i.addAction(Intent.ACTION_CAMERA_BUTTON); 
     i.addAction(ConnectivityManager.CONNECTIVITY_ACTION); 
     registerReceiver(r, i); 
     IntentFilter apps = new IntentFilter(); 
     apps.addAction(Intent.ACTION_PACKAGE_ADDED); 
     apps.addAction(Intent.ACTION_PACKAGE_CHANGED); 
     apps.addAction(Intent.ACTION_PACKAGE_REMOVED); 
     apps.addDataScheme("package"); 
     registerReceiver(r, apps); 

감사합니다!

답변

2

수신기를 호출하지 않으려면 unregister입니다.

+0

글쎄, 나중에 전화하길 원하지만이 시간이 아님 :) –

+1

나중에 전화를 걸 때 다시 등록하십시오. 언제든지 등록 취소하고 등록 할 수 있습니다. –

+0

어떻게해야합니까? 나는 자바에 의해 그것을하고 싶다. 있을 수있다? –

관련 문제