如果我引用Context
,是否可以完成当前活动?
我没有对当前活动的引用。
答案 0 :(得分:211)
是的,有演员:
((Activity) ctx).finish();
答案 1 :(得分:11)
在我的案例中工作之后,
我需要在AsyncTask onPostExcute()中完成我的活动。
我的AsyncTask类是单独的公共类,它有一个带有Context的参数的构造函数。
((Activity)(mContext)).finish();
只有以上对我有用......无论如何,我从@ 2red13和@lucy的答案得到了这个想法...感谢所有...
答案 2 :(得分:11)
我知道这是一个老帖子,但也许以这种方式称呼它是个好主意:
if(context instanceof Activity){
((Activity)context).finish(); }
这样我们确保不会得到任何不必要的ClassCastExceptions
答案 3 :(得分:1)
如果您有权访问要完成的活动的运行视图(例如,您在点击侦听器中),则可以执行以下操作:
((Activity)getContext()).finish();
(感谢2red13让我来这里)。
答案 4 :(得分:1)
如果您使用以下方式开始活动:
startActivityForResult(i, 1);
您可以调用finishActivity(1)来完成使用该请求代码启动的所有活动,如下所示:
((Activity)getContext()).finishActivity(1);
在我的情况下,我需要在处理程序postDelayed中使用一个。使用此功能,您可以确定要完成的活动。希望它有所帮助!
答案 5 :(得分:0)
关闭偏好活动时遇到了同样的问题。这是我做的:
<form class="form-horizontal" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="selectCandy" class="control-label col-sm-0"></label>
<div class="col-sm-4">
<select class="form-control" id="selectC">
<option id="candy1">Lollipop</option>
<option id="candy2">Haribo Gummies</option>
<option id="candy3">Gum</option>
</select>
</div>
</div>
</form>
<div id="noCandy1">
<select class="form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
</select>
</div>
<div id="noCandy2">
<select class="form-control">
<option>1</option>
<option>2</option>
</select>
</div>
<div id="noCandy3">
<select class="form-control">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
</div>
答案 6 :(得分:-3)
尝试:
((Activity) context.getApplicationContext()).finish();