在Own类中使用Activity方法

时间:2013-11-06 12:36:19

标签: android android-activity lifecycle activity-finish

我正在尝试在非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
    }   
}

3 个答案:

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