我正在尝试在非Activity类中使用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
}
}
答案 0 :(得分:0)
你能尝试一下吗?我不确定但它应该有用。
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
}
或者您可以尝试广播接收器。这是我已经给出的一个例子: Pass image from activity to custom view edit
如果您在广播接收器中遇到任何问题,那么您可以询问。
答案 1 :(得分:0)
// try this
((Activity)context).finish();
答案 2 :(得分:0)
试试这个:
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);