其他分享
首页 > 其他分享> > android – 使用backstack启动Activity

android – 使用backstack启动Activity

作者:互联网

我正在尝试启动一个活动,同时正确维护一个后台堆栈以允许用户使用后退按钮.为此,我正在关注谷歌的instructions,但我无处可去.当我单击我的按钮时,没有任何反应(除了日志输出).我需要做些什么才能使此次发布成为下一个活动?

        mBtnNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Log.d(TAG, "click");

                Intent intent = new Intent(ProfileSelectActivity.this, PermissionsRequestActivity.class);

                PendingIntent pendingIntent =
                        TaskStackBuilder.create(ProfileSelectActivity.this)
                                // add all of DetailsActivity's parents to the stack,
                                // followed by DetailsActivity itself
                                .addNextIntentWithParentStack(intent)
                                .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);

                NotificationCompat.Builder builder = new NotificationCompat.Builder(ProfileSelectActivity.this);
                builder.setContentIntent(pendingIntent);
            }
        });

在我看来,最后有一条缺失的线.我试过startActivities();, startActivity();除其他外,但我对我的所有尝试都没有成功.

谢谢你的帮助.

编辑

试图从njzk2实施下面的建议,但我仍然感到困惑.为了将startActivities()添加到TaskStackBuilder行的末尾,我必须删除对PendingIntent的任何赋值.这可能还可以.但是,在下一个活动开始后,如果我点击后退按钮,我只会看到一个白色屏幕.

TaskStackBuilder.create(ProfileSelectActivity.this)
    .addNextIntentWithParentStack(intent)
    .startActivities();

我还注意到,通过后退按钮返回时,我的父活动中的onResume方法没有被调用,所以这可能只是一个恢复状态的问题???

解决方法:

您正在做的是创建(不显示)通知. (正如通知构建者所建议的那样.)

您需要做的是,如文档中所示,调用startActivities():

TaskStackBuilder.create(ProfileSelectActivity.this)
        .addNextIntentWithParentStack(intent)
        .startActivities();

标签:back-stack,android,android-intent,android-pendingintent
来源: https://codeday.me/bug/20190724/1524815.html