从无法扩展 Activity 的包开始意图

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() must be called.

的堆栈跟踪错误

谁能告诉我如何从这里调用新的意图。上面包含的 class 位于一个名为 components 的文件夹中,我的应用程序活动位于另一个文件夹中,以防需要它来给出正确答案。

您需要传递当前 Activity 或应用程序上下文作为您的 Intent 的参数。

如果它在片段内则

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

如果它在 class 内,则:

context.startActivity(context, newActivity.class);
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);