0

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
    }   
}
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
// try this 
 ((Activity)context).finish();
于 2013-11-06T12:53:20.287 に答える