네트워크 연결이 오래 지연되거나
연결되있지않으면 어플이 얼으면서 팅기게됩니다.
팅기는 대신 toast메세지를 띄울순 없나요?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.meal);
if( ni != null && ni.isConnectedOrConnecting() ){
mProgcircle = (ProgressBar)findViewById(R.id.progcircle);
mProgcircle.setVisibility(View.VISIBLE); //프로그래스바를 나타냄
mThread = new AccumThread(mAfterAccum);
mThread.start();
}else{
Toast.makeText(this, "네트워크 연결 상태를 확인하세요." , Toast.LENGTH_SHORT).show();
}
이렇게하면 팅길때도있고 안팅길때도 있거든요..
버튼을 눌러 화면이 나타나면 네트워크 상태를 체크해야하는데 메인쓰레드에서 안하면 어디에서 해야하나요??
어디선가 Exception이 발생하니 죽겠죠..
예외 처리하는 부분에 Toast메시지 띄움 되지 않으까용.
어플이 어는거 보니 메인쓰레드에서 하신거 맞나보네요.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.meal);
if( ni != null && ni.isConnectedOrConnecting() ){
mProgcircle = (ProgressBar)findViewById(R.id.progcircle);
mProgcircle.setVisibility(View.VISIBLE); //프로그래스바를 나타냄
mThread = new AccumThread(mAfterAccum);
mThread.start();
}else{
Toast.makeText(this, "네트워크 연결 상태를 확인하세요." , Toast.LENGTH_SHORT).show();
}
이렇게하면 팅길때도있고 안팅길때도 있거든요..
버튼을 눌러 화면이 나타나면 네트워크 상태를 체크해야하는데 메인쓰레드에서 안하면 어디에서 해야하나요??
ni를 초기화 하는 부분은 다른데 있겠죠??
별 문제는 없어보이는데 중간에 쓰레드가 의심되네요.
혹시 쓰레드에서 네트워크와 관련된 작업을 하시나요?
네트워크 연결이 되있어도 항상 정상적으로 작동한다고 장담할순 없지요..
중간에 연결이 끊길수도 있고, 여러가지 이유로 정상적인 작동이 안될수도 있지요..
쓰레드에서 네트워크를 이용해 작업하고 그 결과물로 뭘 하려다가 거기서 오류가 나서 죽었을수도 있겠네요.
의심되는곳에 Log찍어보시거나 의심되는곳을 전부 try-catch로 묶고 catch부분에서 Toast나 Log찍어보시지용.
아니더라도 logcat에 뜨는 문구 보면 대충 어디서 죽는건지 알텐데요..




네트워크 관련 작업을 메인 쓰레드에서 처리하지 마세요.