我正在尝试在非活动类中使用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);