0

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

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
    }   
}
4

3 回答 3

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
        }

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

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

于 2013-11-06T12:49:23.760 回答
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);
于 2013-11-06T12:56:20.070 回答
0
// try this 
 ((Activity)context).finish();
于 2013-11-06T12:53:20.287 回答