내 액티비티 LoginActivity
에 서브 클래스 checkLoginTask
이 있습니다 (이 액티비티는 사용자 로그인 용 임). 이 서브 클래스는 AsynTask를 확장하는 클래스의 onPostExecute()에서 호출됩니다.정적 메서드에서 Activity를 어떻게 파기 할 수 있습니까?
LoginActivty
인 경우 theLoginOk == "ok"
일 경우 활동을 종료하고 MainActivity
활동을 시작하고 싶습니다. finish()
을 사용했지만 오류가 발생했습니다. Non-Static method "finish()" cannot be referenced from a static context
시도했지만 final Activity activity = this;
시도했지만 작동하지 않습니다.
이 LoingPage
public static void checkLoginTrue(JSONObject jsonObject, Context context){
if(jsonObject != null) {
Intent intent = new Intent(context, MainActivity.class);
try {
JSONObject student = jsonObject.getJSONObject("status");
String theId = student.getString("id");
String theLoginOk = student.getString("login");
Log.i("JSON login", theLoginOk);
if (theLoginOk.equals("ok")) {
intent.putExtra("id", theId);
intent.putExtra("login", theLoginOk);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
} else {
// something
}
} catch (JSONException e) {
Log.w("error", e.getMessage());
}
}
}
가 어떻게이 문제를 해결할 수있는 내 Avtivity의 방법이다?
전체 활동 코드를 게시 하시겠습니까? – Rohit5k2
이 방법이 정적 인 이유는 무엇입니까? 정적 인 경우 AsyncTask에서 다른 곳으로 호출 할 수 있으므로 상황이 잘못되어 콜백 인터페이스를 사용하여 로그인이 완료되었음을 Activity에 알려야합니다. –
실제로는 지침을 사용하여 상위 컨텍스트로 메시지를 보냅니다. 예를 들어'startActictyForResult'를 사용하고'onReceive' 콜백을 통해 'Activity'를 마칠 수 있습니다. – mrres1