2017-03-14 5 views
0

http 응답 코드를 처리하는 데 문제가 있습니다. 문제는 특정 기능을 실행하지 않아 앱이 다운되는 것입니다. 이 경우 Httresponsecode401 일 때 사용자를 다시 로그인 화면으로 보내려고합니다. 그렇지 않으면 사용자는 계속 앱을 사용할 수 있습니다. 내 현재 코드에서활동을 확장 할 수없는 패키지에서 의도를 시작하십시오.

나는 다음과 같습니다

public boolean isUnauthorized(JSONObject response){ 
    try { 
     if(response.getInt("StatusCode") == 401) { 
      return true; 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return false; 
} 

내가 원하는 것은 여기에이 기능의 응용 프로그램을 호출 할 때 와이드는 모든 화면에 동일을 할 것이라는 점을 이렇게 호출하는 것입니다.

Intent i = new Intent(Register.class, Register.activity); 
startactivity(i); 

그러나 ResponseHandler은 활동을 확장 할 수 없기 때문에 가능하지 않습니다. 이 작업을 수행하면 looper.prepare()가 포함 된 스택 추적 오류가 발생해야합니다.

아무도 내게 여기에서 새로운 의도를 부를 수있는 방법을 말해 줄 수 있습니까? 위의 클래스를 포함하는 클래스는 구성 요소라는 폴더에 있고 올바른 대답을 제공하기 위해 필요한 경우 내 앱 활동이 다른 폴더에 있습니다.

+1

이 클래스를 호출하는 활동의 Activity 컨텍스트를 전달한 다음 새로운 인 텐트를 만들 때 사용합니다. Intent intent = new Intent (context, Register.class) –

+0

활동 클래스 이름 대신 Context를 잘못 전달했습니다. –

답변

0

현재 Activity 또는 Application Context를 Intent의 인수로 전달해야합니다.

그 다음 클래스 내에있을 경우는 조각 안에 다음

getActivity().startActivity(getActivity(), newActivity.class); 

경우 : 당신이 조각이있는 경우

context.startActivity(context, newActivity.class); 
+0

은 설명 된 것과 같은 방법을 사용했으며 이제는 작동합니다. 대단히 감사합니다. – Crizz

1
Intent i = new Intent(Register.class, Register.activity); 
startactivity(i); 

이것은

Intent i = new Intent(CurrentClass.this, Activity.class); 
startactivity(i); 

해야한다

Intent i = new Intent(getActivity(), Activity.class); 
getActivity().startactivity(i);