相关疑难解决方法(0)

Android:从后台堆栈中删除所有以前的活动

当我点击我的个人资料活动中的退出按钮时,我想将用户带到登录页面,他需要使用新的凭据.

因此我使用了这段代码:

Intent intent = new Intent(ProfileActivity.this,
        LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

在" onButtonClick注销"按钮中.

但问题是,当我点击登录活动上的设备后退按钮时,它会将我带到ProfileActivity.当我按下LoginActivity上的设备后退按钮时,我希望应用程序关闭.

我究竟做错了什么?

我还在LoginActivityandroid:launchMode="singleTop"的清单中添加了

谢谢

android back-stack

104
推荐指数
8
解决办法
13万
查看次数

完成另一个活动的活动

我想完成另一项活动的一项活动,例如:

在活动[A]中,单击按钮时,我调用活动[B]而不完成活动[A].

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

但是当用户单击Activity [B]中的New按钮时,我将不得不从堆栈中完成Activity [A]并再次将Activity [A]重新加载到堆栈中.

我正在尝试,但我无法从堆栈中完成活动[A] ......我怎么能这样做?

我使用的代码如下:

来自活动[A]:

Intent GotoB = new Intent(A.this,B.class);
startActivityForResult(GotoB,1);
Run Code Online (Sandbox Code Playgroud)

同一活动中的另一种方法

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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在活动[B]中,点击按钮:

setResult(1);
finish();
Run Code Online (Sandbox Code Playgroud)

android android-intent android-activity

93
推荐指数
7
解决办法
13万
查看次数