我有两个活动A和B。B是透明的,A是可见的。我想通过按下A上的按钮来杀死B。
到目前为止,这是我尝试过的:
B obj=new B();
obj.finish();
我创建了一个B对象并试图销毁它,但这没有起作用。
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("keep", true);
startActivity(intent);
这段代码的目的是清除最上层的活动(Activity),即B,并再次调用B,但这次我传递了一个值,以便在几秒钟后B自行销毁。
出于某种原因,这只会堆积更多的活动实例。或者至少我认为是这样,因为屏幕由于许多透明的活动而变得像素化。
这是我的清单:
<activity
android:name="com.xxx.xxx.B"
android:excludeFromRecents="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:clearTaskOnLaunch="true" >
</activity>
我需要怎么做,才能通过一次点击按钮显示活动并第二次点击关闭它?创建部分已得到明确解决。我的活动B弹出,我现在想要关闭它,因为B在顶部。
编辑
我尝试使用复选框,这是代码:enable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
finishActivity(0);
Intent intent = new Intent(A.this, B.class);
if (enable.isChecked()) {
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("keep", true);
intent.putExtra("value", 10);
startActivityForResult(intent, 0);
}
else
{
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("keep", false);
startActivityForResult(intent, 0);
}
}
});
当启用选中时,该活动被调用,这很好。但是它们会不断堆积。当我选中和取消选中复选框时,并不像这样 A->B->A->B。它变成了 A->B->BB->BBB。