gpt4 book ai didi

android - 如何使用 Intent 停止android中的 Activity ?

转载 作者:IT老高 更新时间:2023-10-28 23:21:35 25 4
gpt4 key购买 nike

我认为这是一个基本问题。是否有任何选项可以通过使用 Intent 来停止 Activity 。

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:5554"));
startActivity(intent);

这是我的代码。如果用户忙或其他情况,我想停止此 Activity (也就是说,我想挂断此电话)。我能为此做些什么?我试过这个:

if (condition) {
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:5554"));
startActivity(intent);
}else {
this.finish();
}

但是没有用。有人有建议吗?

最佳答案

几天前我遇到了这个问题,我很高兴地告诉你我已经找到了解决这个问题的方法。

首先,在 AndroidManifest.xml 中添加要停止的 Activity :

android:launchMode="singleTop"

我将使用 CheckBox 示例。当它被选中时, Activity 开始,当取消选中时,将终止 Activity 。

示例 Activity A 正在调用 Activity B,然后使用 Intent 杀死它。

要放入A的代码:

checkbox.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {
Intent intent = new Intent(A.this, B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
if (enable.isChecked()) {
intent.putExtra("keep", true);
startActivity(intent);
}
else
{
intent.putExtra("keep", false);
startActivity(intent);
}
}
});

要放入B的代码:

boolean keep;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.B);
intent = this.getIntent();
boolean keep = intent.getExtras().getBoolean("keep");
if(keep==true)
{
//execute your code here

}
}
@Override
protected void onNewIntent(Intent intent)
{
super.onNewIntent(intent);
keep = intent.getExtras().getBoolean("keep");
if(keep==false)
{
B.this.finish();
}
}

解释:这基本上做的是,当复选框被选中时,它调用 Activity 并传递一个 bool 值,如果它是真的, Activity 保持 Activity 状态并被带到前台。现在,如果您不传递标志 singleTop,那么将创建此 Activity 的许多实例。 singleTop 确保只调用同一个实例。现在,当未选中复选框时,传递了一个新的 keep 值,该值在 B 中进行验证。如果未选中,Activity A 将传递 false,因此 B 从 onNewIntent() 函数中终止自身.

P.S - 您也可以从另一个 Activity 关闭 Activity B。只需使用如果其他 Activity 是C:

Intent intent = new Intent(C.this, B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra("keep", false);
startActivity(intent);

关于android - 如何使用 Intent 停止android中的 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14411477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com