在自己的类中使用活动方法



我正在尝试在非活动类中使用finish()方法,但出现以下异常:

java.lang.ClassCastException: android.app.Application cannot be cast to com.mypackage.MyActivity

这是我尝试做的非常简单的示例:

class MyActivity extends Activity {
    // code here
    // call MyClass.exampleMethod 
}
class MyClass {
    public static void exampleMethod(Context context) {
        Intent intent = new Intent(context, SecondActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
        ((MyActivity)context).finish(); // in this line exception
    }   
}

你能试试一次吗?我不确定,但它应该有效。

public static void exampleMethod(Activity my_activity) {
            Intent intent = new Intent(my_activity, SecondActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            my_activity.startActivity(intent);
            ((MyActivity)my_activity).finish(); // in this line exception
        }

或者您可以尝试广播接收器。这是我已经给出的一个例子:将图像从活动传递到自定义视图编辑

如果您在广播接收器中遇到任何问题,那么您可以询问。

// try this 
 ((Activity)context).finish();

试试这个:

public class MyClass {
    public static void exampleMethod(Context context, Activity activity) {
        Intent intent = new Intent(context, LoginActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
        activity.finish(); // in this line exception
    }
}
MyClass.exampleMethod(getApplicationContext(), this);

最新更新