回答
是,与投:
((Activity) ctx).finish();
只有当前活动,否则非当前活动将完成:) – ernazm 2011-03-21 11:08:47
这可能会导致问题,如果'Context'实际上是一个应用程序上下文。 – user634618 2011-03-21 11:24:41
如果上下文是应用程序上下文,该如何实现。我正在类中运行一个计时器线程,如果时间结束,我想关闭该类中的当前活动。 – Sando 2011-09-12 08:58:36
如果您有机会获得你想要完成活动的运行视图(例如,你在点击监听器),你可以这样做:
((Activity)getContext()).finish();
(与感谢2red13让我在这里)。
在我的情况下面工作,
我需要完成我的活动中的AsyncTask onPostExcute()。
其中我的AsyncTask类是单独的公共类,它具有带有参数Context的构造函数。
((Activity)(mContext)).finish();
只有上述工作对我来说...反正我有这个想法来自@ 2red13和@lucy答案...感谢所有...
这在现在是不同的形式'((Activity)mContext).finish()'。 – prakharsingh95 2015-06-16 11:23:59
尝试:
((Activity) context.getApplicationContext()).finish();
请勿使用此“解决方案”!你不能猜测(你可能总是错),你的应用程序上下文与你的Activity相同。 – marciowb 2014-02-11 22:55:47
我知道这是一个老的文章,但,也许它可能是一个好主意,这样调用它:
if(context instanceof Activity){
((Activity)context).finish(); }
这样,我们要确保我们没有得到任何ü nnecesary ClassCastExceptions异常
如果您在使用启动活动:
startActivityForResult(i, 1);
你可以调用finishActivity(1)完成的任何活动开始与该请求的代码,像这样:
((Activity)getContext()).finishActivity(1);
在我的案例我需要在处理程序postDelayed中使用一个。使用这个你可以确定你正在完成哪些活动。希望能帮助到你!
我在关闭首选项活动时遇到同样的问题。下面是我做的:
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();
}
}
- 1. 从活动返回时没有当前的openGL上下文吗?
- 2. 当关闭JNDI上下文
- 3. 关闭当前活动out previous activity
- 4. 当按下按钮时,结果活动关闭主要活动
- 5. 为什么在调用StartActivityForResult时mvvmcross会关闭当前活动?
- 6. 当活动关闭时运行代码
- 7. 在当前活动中关闭旧活动
- 8. 在非活动类中获取当前活动上下文
- 9. 没有当前上下文
- 10. Android:关闭连接只有当活动应该被销毁
- 11. 导航到当前活动时关闭抽屉
- 12. 完成()第一次没有关闭当前活动
- 13. 当按下其他活动内容时关闭一个片段
- 14. 关闭当前UserControl
- 15. 关闭当前应用程序并启动Play商店的所有活动
- 16. 当你在iPhone上打开它时,下拉菜单会自动关闭(Bootstrap v3.3.1)
- 17. 安卓完成当前活动导致应用关闭
- 18. 当我的活动完成时,我应该对活动上下文的空引用吗?
- 19. 与对话的主题打开活动上的当前活动
- 20. 当应用程序关闭时,BroadcastReceiver无法启动活动
- 21. 当启动活动时,应用程序进程已关闭
- 22. 如何在使用HttpListener时引用当前http上下文?
- 23. 当没有互联网连接时,活动关闭
- 24. onBackPressed不关闭Android中的当前活动
- 25. 获取当前运行活动的上下文
- 26. 如何检查上下文当前正在运行的活动
- 27. 当前http上下文的HTTP动词
- 28. c#wpf当关闭当前应用程序时显示上一个活动窗口
- 29. 活动不关闭当主题是Theme.NoDisplay
- 30. 在当前状态下启动活动
http://stackoverflow.com/questions/8586818/finish-activity-from-custom-view-using-context/25854387#25854387 看一看这个后:) :) – quicksilver 2014-09-15 18:25:58