完成()没有完成活动:Android

时间:2014-03-13 19:41:54

标签: android callback android-activity activity-finish

我有一个Activity,其onCreate()方法我称之为Utility函数。 此实用程序函数需要一个回调类实例作为参数,在该参数中它返回我需要的信息。这是:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);    
         Utility.functionA(new functionACallBack() {
                /**
                 * 
                 */
                private static final long serialVersionUID = -7896922737679366614L;

                @Override
                public void onResponse(String error) {

                     ((MyActivity) AppClass.getAppContext()).finish();
                }
            });
}

获得该信息后,我想关闭活动。所以我从我为回调创建的匿名类中调用了finish()。

但是活动还没有完成。我想也许我需要从UI线程调用finish()所以我做了runOnUiThread(),在里面我也尝试调用finish()。但它只是不起作用。

有人可以帮我解决这个问题吗?

更新:

我正在存储APP上下文然后尝试使用它但无济于事。

public class AppClass extends Application {

    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        AppClass.mContext = getApplicationContext();

    }

    public static Context getAppContext(){
        return AppClass.mContext;
    }
}

2 个答案:

答案 0 :(得分:1)

只需拨打以下内容:

@Override
public void onResponse(String error) {
  ((Activity) context).finish();
}

由于这是static功能,您必须能够以Context方式访问static。您可以将其保存为Class变量,但您必须了解其处理方式,因为它可能会导致内存泄漏。

为了避免它们,你可以声明一个extends Application的类并保存你的上下文,这样你就不会有内存泄漏。

答案 1 :(得分:0)

尝试使用此代码:

((Activity) ActivityClass.this).finish();

请记住,使用Activity类,而不是Application类。