我进行了搜索,但我无法找到任何相关内容。 问题是: 我有一个实用程序类,我想插入一个可以从项目中的任何活动启动的注销功能,这显然很容易,但是我无法定义从哪个类调用此函数,因为我想要他退出后将用户重定向到登录类,所以我想把这个类作为参数传递,但我正在检索意图中的错误......我怎么能这样做?
public final class utility {
private utility(){}
public static void logOut(String className) {
LoginManager.getInstance().logOut();
Intent i = new Intent(className.class, LoginActivity.class); //here I got the error unknown class className
startActivity(i);
}
}
答案 0 :(得分:2)
将您的代码更改为:
public final class utility {
private utility(){}
public static void logOut(Context mContext) {
LoginManager.getInstance().logOut();
Intent i = new Intent(mContext, LoginActivity.class);
mContext.startActivity(i);
}
}
答案 1 :(得分:2)
关键是在启动新活动或服务时使用活动上下文。请记住,有很多上下文类型(应用程序上下文,活动/服务等等)。
如果要创建实用程序类,则必须确保向其发送正确的上下文。最好的方法是发送当前活动,以便实用程序可以使用它的上下文。
所以答案应该是:
public static void logOut(Activity activity, String className) {
Intent i = new Intent(activity, LoginActivity.class);
activity.startActivity(i);
}
关于上下文有一个很棒的article我建议你阅读:)