2012-09-24 2 views
1

Jetty WebServer을 내 안드로이드 앱 안에 임베드하여 앱이 WebServer처럼 작동 할 수 있도록 노력했습니다.백그라운드 스레드에서 별도의 Android 액티비티 호출하기

AsyncTask을 사용하여 백그라운드에서 실행되도록했습니다. 그런 다음, 나는 또한 예상대로 작동하는 몇 개의 서블릿을 인스턴스화 할 수있었습니다.

이제 서블릿 중 하나에서 서블릿을 Activity으로 호출하여 사용자가 로그인하여 일부 데이터를 제공하고 해당 데이터를 서블릿에 반환하여 사용자에게 다시 보낼 수있게하려고합니다. 서블릿은 백그라운드에서 실행되기 때문에 서블릿에서 활동을 호출하는 데 어려움을 겪고 있습니다.

이제 어떤 방법이 있는지 알고 싶습니다.

도움이나 제안을 보내 주시면 대단히 감사하겠습니다.

감사합니다.

답변

0

AsyncTask의 생성자에서 Context 객체를 매개 변수로 가져 와서 로컬에 저장하십시오. 당신이 다음 활동을 시작해야 할 때 지금 사용

Intent intent = new Intent(mContext, Next.class); 
mContext.startActivity(intent); 

AsyncTask를이 될 것입니다 뭔가 같은 :

public AsyncTask MyTask...... { 

    Context mContext; 

    public MyTask(Context context) { 
     mContext = context; 
    } 

} 

그리고 사용 만들 : 답변

MyTask myTask = new MyTask(getBaseContext()); 
myTask.execute(); 
+0

감사합니다. 나는 전에 이것을 시도했다. 문제는 서블릿이 HttpServlet을 확장하는 별도의 클래스에 있다는 것입니다. 받은 후에는 다른 클래스의 메서드를 호출합니다.이 클래스 안에서는 해당 함수를 호출해야합니다. 나는 컨텍스트 레퍼런스를 클래스에 전달하여 activity를 호출해야 할 곳을 찾는다. 이 시점에서 Null 포인터 예외가 발생합니다. 왜 그런가? 감사합니다 – Ripul

+0

예외를 일으키는 코드를 게시하십시오. –

+0

코드를 한 번 더 코드와 비교 한 후에 오류가 발견되었습니다. 오류를 찾기 위해 나를 이끌어 주셔서 감사합니다. – Ripul

관련 문제