簡體   English   中英

從無法擴展活動的包開始意圖

[英]Start intent from package which cannot extends Activity

我在處理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無法擴展Activity。 如果執行此操作,則會收到包含looper.prepare()的堆棧跟蹤錯誤。

有人可以告訴我如何從這里提出新的意圖。 上面包含的類位於一個名為components的文件夾中,而我的應用程序活動位於另一個文件夾中,以防需要提供正確答案。

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);

您需要將當前的Activity或Application Context作為Intent的參數傳遞。

如果它在碎片內,則

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

如果它在一個類中,則:

context.startActivity(context, newActivity.class);

暫無
暫無

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

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