2014-03-28 1 views
0

로컬 방송에 문제가 있습니다. 2 アンド 로이드 (내 자신의 전화 + 보스의 전화)에서 어떤 이유로 그것은 잘 작동합니다. 다른 전화기 (내 사장과 같은 갤럭시 s3 미니)와 보스 타블렛에서 충돌합니다. tmp.sendBroadcast 명령이 바로 실행되지 않으면 프로그램이 중단됩니다 (그 후에도 계속 수행됩니다). 그러나 결코 수신기에 도착하지 않습니다.Android localbroadcast가 앱을 중단시킵니다.

public class UpdaterIntent extends IntentService { 

... 

Intent intent = new Intent("my-event"); 
      intent.putExtra("action", "update_workplaces"); 
      intent.putExtra("parameters", time); 


LocalBroadcastManager'tmp=LocalBroadcastManager.getInstance(myInst); 


      if(tmp!=null) { 
       tmp.sendBroadcast(intent); 

      } 

나는이 같은 수신기를 등록 :

LocalBroadcastManager.getInstance(this).registerReceiver(mMessageReceiver, 
       new IntentFilter("my-event")); 

수신기는 이것이다 : 나는 그렇게 할 이유 몇 가지 이유를 검색하는 것을 시도했다

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Toast.makeText(myContext, "received message", Toast.LENGTH_SHORT).show(); 

     } 

    } 
}; 

. putExtra로는 너무 긴 매개 변수 일 수도 있지만 두 개의 문자열 (코드에서 볼 수있는 하나, 하나는 "2014-03-28 12:20:02"등과 같이 서버에서 오는 날짜입니다. 일부 하드 코드 된 제한을 초과의 위험이 안된다. 어떤 제안

을? 내가 지옥 같은 서투른되는 때우기 이에 대한 대안을 좋아하지 않는다.

+2

당신이 기회에이 있습니까 logcat을 게시 하시겠습니까? – nikis

+0

정상적으로 디버깅을 위해 디버그 모드를 사용하지 않는 경우 디버그 모드가 바람직하지 않은 이유가 무엇입니까? 개인용 장치의 모드 전환 아이디어를 판매해야합니다. 두 장치 중 하나에서 충돌이 발생하지 않습니다. 개발을위한 것입니다 (파 전화로. 그것이 일어날 경우 훨씬 쉬울 것입니다). 어쩌면 다음 주에 전화로 손을 뗄 수 있습니다. 그들이 전화 자체를 사용하여 이메일을 통해 업로드 할 수있는 방법이 없다면 (나는 그들이 adb 콘솔을 사용하는 방법을 배우는 데 기꺼이 고심 할 것입니다) – user1396135

답변

0
LocalBroadcastManager.getInstance(this).sendBroadcast(intent); 
+0

약간의 설명을 추가하십시오. 코드 교환 만 stackexchange에서 낮은 품질로 간주됩니다. –

+0

그래, myInst는 "this"를 값으로 가지는 미리 저장된 변수 임에도 불구하고 이것을 시도해 보겠습니다. 왜 그것을 해결할 수 있을지 모르겠다. (이것도 작동하지 않을 것이다.) localbroadcastmanager가 AsyncTask 내에서 호출되므로이 점이 유효하지 않다는 것을 잊었습니다. AsyncTask 내에서 호출되어 충돌을 일으킬 수 있습니까? – user1396135

관련 문제