【发布时间】:2014-03-13 19:41:53
【问题描述】:
我有一个 Activity,我在其 onCreate() 方法中调用了一个实用程序函数。 此实用程序函数需要一个回调类实例作为参数,它在其中返回我需要的信息。这是:
@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;
}
}
【问题讨论】:
-
你试过打电话给
YourActivity.finish()吗? -
我试过了,但是 Utility.functionA() 是一个静态函数,它不允许我从里面调用非静态函数..
-
然后尝试在您的
Activity中声明一个static函数,该函数将调用YourActivity.finish()并在您的onResponse()方法中调用该函数。 -
是的,您需要直接从您的活动中调用完成,现在它正在从您的实用程序函数中调用。
-
我该怎么做...@zgc7009?
标签: android callback android-activity activity-finish