簡體   English   中英

無法通過onPostExecute運行新活動

[英]Can't run new activity from onPostExecute

從httpUrlConnection獲得響應后,我無法啟動mainActivity。 這是我的onPostExecute方法

    protected void onPostExecute(String[] result) {
        serv.httphelper.handleResults(result);

    }

在方法handleResult()中,im處理響應代碼。 如果響應代碼為200,我想在我的loginActivity類中運行一個新方法

public void handleResults(String[] result) {

    status = result[0].toString();
    instructions = result[1].toString();
    jsonString = result[2];

    Log.d("DEBUG", status);

    if (status.equals("200")) {
        serv.loginActivity.proceed();

    } else if (status.equals("400")) {
        serv.loginActivity.loginError();

    } else if (status.equals("401")) {
        serv.loginActivity.loginError();

    }

}

當我嘗試從proceed()方法開始一個新的活動時,我得到一個nullpointerexception

    public void proceed(){
    startActivity(new Intent (LoginActivity.this, MainActivity.class));
    Log.d("TEST", "Proceed success");


}

我為任何想知道的人提供的服務課程:

public class Service {

public static HttpHelper httphelper = new HttpHelper();
public static HttpConnect conn = new HttpConnect();
public static LoginActivity loginActivity = new LoginActivity();

}

這是我的logCat: LogCat

提前致謝!

您的問題是從以下行開始活動:

startActivity(new Intent (LoginActivity.this, MainActivity.class));

好吧,您創建了一個嘗試進入LoginActivity.this的意圖,該意圖可能不存在!
取而代之的是,您必須提供當前正在運行的真實活動的實例。

我建議您使用的解決方案是將當前正在運行的活動的實例傳遞給proceed()而不是LoginActivity.this
如果您沒有當前活動,請嘗試放置應用程序的上下文,並為其添加新任務的標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM