制作可重复使用的功能,在Android中启动活动

时间:2017-01-28 09:39:05

标签: android function android-intent android-activity

我进行了搜索,但我无法找到任何相关内容。 问题是: 我有一个实用程序类,我想插入一个可以从项目中的任何活动启动的注销功能,这显然很容易,但是我无法定义从哪个类调用此函数,因为我想要他退出后将用户重定向到登录类,所以我想把这个类作为参数传递,但我正在检索意图中的错误......我怎么能这样做?

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

        }
    }

2 个答案:

答案 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我建议你阅读:)