액티비티 전환시 Progress Bar가 너무 빨리 지나간다면?
728x90
반응형

물론 원인파악을 해야하겠지만....

아래의 CallBack 함수에서 프로그레스바(Progress bar)가 제대로 작동을 안하는 경우가 생겼다.

아래 소스는 게시물 작성 후 Progress bar가 작동을 하고 그동안 서버에 업로드 되며

리스트에 추가된 게시물이 갱신이 되기...를 바란 소스이다.

그런데 갱신이 안되는 것이다~!!!!!




그래.. 내가 콜백 함수를 이해를 잘 못했겠지.

근데 어쩌나. 내일 당장 어플을 보여줘야 되는데.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
final Call<HomeData> response = ListRestAdapter.getInstance().createGroupData(authorization, imgMap);
response.enqueue(new Callback<HomeData>() {
    @Override
    public void onResponse(Call<HomeData> call, Response<HomeData> response) {
        view.addGroupResult(response.code());
        Log.i(TAG, "-------- onResponse : "+groupName);
        if(response.isSuccessful()){
            Toast.makeText(context, "Add Group : Successful", Toast.LENGTH_SHORT).show();
        } else {
            Toast.makeText(context, "Add Group : Fail", Toast.LENGTH_SHORT).show();
        }
        Log.i(TAG, "-------- photoAddGroupUpdate : "+response.code());
        view.addGroupFinish();
        progress.dismiss();
    }
    @Override
    public void onFailure(Call<HomeData> call, Throwable t) {
        Log.e(TAG, "------ " + t.getMessage());
        view.addGroupFinish();
        progress.dismiss();
    }
});
cs


그래서 고민을 하다가 최후의 수단을 사용해보기로 했다.

바로 Progress bar가 dismiss 되기 전에 액티비티를 새로 시작하는 것으로.


1
2
3
4
5
6
7
8
    @Override
    public void addGroupFinish() {
//        startActivity(new Intent(this, MainActivity.class));
//        finish();
        Intent intent = new Intent(AddGroupActivity.this, MainActivity.class);
//        mainActivity.finish();
        startActivity(intent);
    }
cs


finish()를 넣었을 때, 협업을 하는 친구쪽에서는 업로드 잘해놓고 에러가 나타난다고 했다.

나도 설치 직후에는 그런 현상이 나타났지만 그 이후에는 문제가 없었다.

당연하지만 finish는 생명주기에 영향을 주기에 그런 상황이 생길 수 있다.

그러므로 제외를하고 원하는 액티비티를 부르기만 하는 방향으로 수정했다.


그리고 다행히

갱신이 되는 모습을 보게 되었다.

(ㅋ... 감동)


참고한 자료

 - http://android119.tistory.com/5


콜백 관련

 - http://stackoverflow.com/questions/34949395/retrofit-progressbar/34950013

728x90
반응형