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