Java 从无法扩展活动的包启动意图
我在处理http响应代码时遇到一些问题。问题是,应用程序崩溃是因为我没有指定要运行的特定函数。 在这种情况下,我想在Httresponsecode为401时将用户发送回登录屏幕,否则用户仍然可以使用该应用程序 在我当前的代码中,我有以下内容: 我想要的是在这里调用,以便在整个应用程序范围内调用此函数时,它将在每个屏幕上执行相同的操作Java 从无法扩展活动的包启动意图,java,android,json,http-response-codes,Java,Android,Json,Http Response Codes,我在处理http响应代码时遇到一些问题。问题是,应用程序崩溃是因为我没有指定要运行的特定函数。 在这种情况下,我想在Httresponsecode为401时将用户发送回登录屏幕,否则用户仍然可以使用该应用程序 在我当前的代码中,我有以下内容: 我想要的是在这里调用,以便在整个应用程序范围内调用此函数时,它将在每个屏幕上执行相同的操作 Intent i = new Intent(Register.class, Register.activity); startactivity(i); 但是,这是
Intent i = new Intent(Register.class, Register.activity);
startactivity(i);
但是,这是不可能的,因为ResponseHandler无法扩展活动。如果我这样做,我会得到一个包含looper.prepare的堆栈跟踪错误,必须调用它
有谁能告诉我,我怎么才能在这里称之为新的意图。包含上述内容的类位于名为components的文件夹中,而my app activities则位于另一个文件夹中,以防给出正确答案。您需要将当前活动或应用程序上下文作为参数传递给您 如果它在一个碎片里面,那么
getActivity().startActivity(getActivity(), newActivity.class);
如果它在类内,则:
context.startActivity(context, newActivity.class);
这应该是
Intent i = new Intent(CurrentClass.this, Activity.class);
startactivity(i);
如果你有碎片
Intent i = new Intent(getActivity(), Activity.class);
getActivity().startactivity(i);
您需要从调用此类的活动中传递活动上下文,然后在创建新意图时使用该上下文,即intent intent=new Intentcontext,Register.classe您错误地传递了上下文而不是活动类名称。使用了与所述相同的方法,现在它可以工作了。非常感谢你
Intent i = new Intent(CurrentClass.this, Activity.class);
startactivity(i);
Intent i = new Intent(getActivity(), Activity.class);
getActivity().startactivity(i);