从另一个活动完成的活动 [英] Finish an activity from another activity

查看:137
本文介绍了从另一个活动完成的活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从另一个活动完成一项活动,如:

在活动[A],在按一下按钮,我呼吁活动[B]没有完成活动[A]。

现在的活动[B],有两个按钮,修改。当用户点击修改,然后弹出一个活动[A]从堆栈中的所有选项打勾。

但是,当上从活动[B]按钮,用户点击,那么我将不得不[A]从栈完成活动和[A]再次刷新该活动进栈。

我想,但我不能够完成的活动[A]从栈......我该怎么办呢?

我现在用的是code为:

从活动[A]:

 意图GOTOB =新的意图(A.this,B.class);
startActivityForResult(GOTOB,1);
 

在同一活动的另一种方法

 公共无效onActivityResult(INT申请code,INT结果code,意图意图){

    如果(要求code == 1)
    {
        如果(结果code == 1){
            意图I = getIntent();
            overridePendingTransition(0,0);
            i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            完();

            overridePendingTransition(0,0);
            startActivity(ⅰ);
        }
    }
}
 

和活动中的[B]按钮点击:

 的setResult(1);
完();
 

解决方案
  1. 请在清单文件中的酶活性的: launchMode =singleInstance

  2. 当用户点击新的,做 FirstActivity.fa.finish(); 并调用新的意向

  3. 当用户点击修改,调用新的意图或者只是完成b活动。

第一种方式

在您的第一项活动,定义一个活动目标这样,

 公共静态活动发;
的onCreate()
{
    FA =这一点;
}
 

现在使用另一个活动的对象来完成第一活性这样,

 的onCreate()
{
    FirstActivity.fa.finish();
}
 

第二个方法

在呼吁你的活动 FirstActivity 要为你继续前进,尽快完成, 您可以添加标志,同时呼吁 FirstActivity

  intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
 

但是,使用此标志的活动将拿完evenif你希望它不要。和某个 onBack 如果你想显示 FirstActivity ,你将不得不使用意图调用它。

I want to finish one activity from another activity, like:

In Activity [A], on button click, I am calling Activity [B] without finishing Activity [A].

Now in Activity [B], there are two buttons, New and Modify. When the user clicks on modify then pop an activity [A] from the stack with all the options ticked..

But when the user click on New button from Activity [B], then I will have to finish Activity [A] from the stack and reload that Activity [A] again into the stack.

I am trying it, but I am not able to finish Activity [A] from the stack... How can I do it?

I am using the code as:

From Activity [A]:

Intent GotoB = new Intent(A.this,B.class);
startActivityForResult(GotoB,1);

Another method in same activity

public void onActivityResult(int requestCode, int resultCode, Intent intent) {

    if (requestCode == 1)
    {
        if (resultCode == 1) {
            Intent i = getIntent();
            overridePendingTransition(0, 0);
            i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            finish();

            overridePendingTransition(0, 0);
            startActivity(i);
        }
    }
}

And in Activity [B], on button click:

setResult(1);
finish();

解决方案

  1. Make your activity A in manifest file: launchMode = "singleInstance"

  2. When the user clicks new, do FirstActivity.fa.finish(); and call the new Intent.

  3. When the user clicks modify, call the new Intent or simply finish activity B.

FIRST WAY

In your first activity, declare one Activity object like this,

public static Activity fa;
onCreate()
{
    fa = this;
}

now use that object in another Activity to finish first-activity like this,

onCreate()
{
    FirstActivity.fa.finish();
}

SECOND WAY

While calling your activity FirstActivity which you want to finish as soon as you move on, You can add flag while calling FirstActivity

intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);

But using this flag the activity will get finished evenif you want it not to. and sometime onBack if you want to show the FirstActivity you will have to call it using intent.

这篇关于从另一个活动完成的活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆