android完成活动的上下文

如果我参考上下文,是否有可能完成当前的活动? 我没有提及当前的活动。

是的,与一个演员:

((Activity) ctx).finish(); 

在我的案例下面的工作,

我需要在AsyncTask onPostExcute()中完成我的活动。

在哪里我的AsyncTask类是单独的公共类,其中有一个构造函数与上下文参数。

 ((Activity)(mContext)).finish(); 

只有上面的工作对我来说…无论如何,我从@ 2red13和@lucy答案得到了这个想法…感谢所有…

我知道这是一个旧的职位,但也许这可能是一个好主意,这样称呼它:

 if(context instanceof Activity){ ((Activity)context).finish(); } 

这样我们确保我们不会得到任何不需要的ClassCastExceptions

在Android的最新版本中,我使用了finish() ;

如果您有权访问要完成的​​活动的运行视图(例如,您处于点击监听器中),则可以执行以下操作:

 ((Activity)getContext()).finish(); 

(感谢2red13让我在这里)。

如果您使用以下方式开始活动:

 startActivityForResult(i, 1); 

您可以调用finishActivity(1)完成以该请求代码开始的任何活动,如下所示:

 ((Activity)getContext()).finishActivity(1); 

在我的情况下,我需要在处理程序postDelayed中使用一个。 使用这个你可以确定你正在完成哪个活动。 希望能帮助到你!

closures首选项活动时,我遇到了同样的问题。 这是我做的:

 public class T2DPreferenceActivity extends PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getFragmentManager().beginTransaction().replace(android.R.id.content, new T2DPreferenceFragment()).commit(); } public static class T2DPreferenceFragment extends PreferenceFragment { @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.server_screen_preference); Preference testServicePreference = getPreferenceScreen().findPreference("PREFERRED SERVER"); testServicePreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { T2DPreferenceActivity.closeActivity(getActivity()); return true; //returning true still makes the activity handle the change to preferences } }); } public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); ListView lv = (ListView)view.findViewById(android.R.id.list); ViewGroup parent = (ViewGroup)lv.getParent(); parent.setPadding(0, 100, 0, 0); } } protected static void closeActivity(Activity activity) { activity.finish(); } } 

尝试:

 ((Activity) context.getApplicationContext()).finish();