我正在开始一项活动,宁愿有一个淡入淡出的淡入淡出startActivity()和淡出淡出finish().我怎样才能在Android SDK中解决这个问题?
我有两个活动A和B. B是透明的传递活动,可以看到A. 我想按下按钮A杀死B.
这是我到目前为止所尝试的:
B obj=new B();
obj.finish();
Run Code Online (Sandbox Code Playgroud)
我创建了一个B的对象并试图杀死它.那没用.
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("keep", true);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
这段代码应该做的是清除最顶层的活动,即B并再次调用B,除非这次我传递的值使得B在几秒钟后自杀.
由于某种原因,这只会增加活动的更多实例.或者至少我认为发生了什么,因为屏幕由于许多透明的活动而变得像素化.
这是我的清单:
<activity
android:name="com.xxx.xxx.B"
android:excludeFromRecents="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:clearTaskOnLaunch="true" >
</activity>
Run Code Online (Sandbox Code Playgroud)
当我在显示活动时按下按钮并且第二次杀死按钮时,我该怎么办呢?创作部分显然得到了照顾.我的活动B弹出,我想杀死它,因为B在顶部.
编辑
我用一个checkBox尝试了这个,这是代码:
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);
}
}
});
Run Code Online (Sandbox Code Playgroud)
选中启用后,将调用该活动,该工作正常.但他们一直在努力.当我检查并取消选中复选框时,它不像这个A-> B-> A-> B. 它是A-> B-> BB-> BBB