如何停止在Android的使用意图的活动?(How to stop an activity in a

2019-07-18 10:19发布

我想这是一个基本的问题。 是否有任何选项可以使用意图停止活动。

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

这是我的代码。 我想制止这种行为(这意味着,我想放弃这个呼叫),如果用户是忙什么。 我只要做什么? 我尝试这样做:

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

但是没有用的。 没有任何人有一个建议?

Answer 1:

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

首先,你要停在添加此活动AndroidManifest.xml

android:launchMode="singleTop"

我将使用一个CheckBox实例。 当它的检查活动开始,取消选中将杀死活动时。

实施例活性A被调用活动B,然后使用意图杀死它。

应把代码放在一个:

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();
    }
}

说明:这是什么通常做的就是,当复选框被选中它调用的活动,并传递一个布尔值,如果这是真的活性保持活力,并带到前台。 现在,如果你没有通过标志singleTop那么这个活动的许多实例将被创建。 singleTop确保只有相同的实例被调用。 现在,当该复选框不选中被传递用于保持一个新值,其在B.验证如果未选中,活动A将被传递false,因此B,从所述内终止自身onNewIntent()函数。

PS - 您可以从另一个活动结束活动B了。 只需使用如果其他活动是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);


Answer 2:

您可以关闭Play商店的后台数据,而对没有进入Play商店。它会简单地说,“不能加载”播放服务,这是我发现阻止意图的唯一途径



文章来源: How to stop an activity in android using intent?