当我点击我的个人资料活动中的退出按钮时,我想将用户带到登录页面,他需要使用新的凭据.
因此我使用了这段代码:
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"的清单中添加了
谢谢
我有一个启动画面活动,然后是登录活动.我的历史堆栈看起来像:
SplashActivity
LoginActivity
Run Code Online (Sandbox Code Playgroud)
当用户通过LoginActivity成功登录时,我想启动WelcomeActivity,但清除整个堆栈:
SplashActivity
LoginActivity // launches WelcomeActivity ->
WelcomeActivity
// but now all three are in the history stack, while I only
// want WelcomeActivity in the stack at this point.
Run Code Online (Sandbox Code Playgroud)
我可以使用一些标志来做到这一点吗?
// LoginActivity.java
Intent intent = new Intent(this, WelcomeActivity.class);
intent.addFlag(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)
不确定使用FLAG_ACTIVITY_CLEAR_TASK是否会清除我的任务中的所有活动.我可以通过使用startActivityForResult()调用展开堆栈来"手动"执行此操作,但是会更脆弱并且需要维护更多代码.
谢谢
如果在遵循通知时应用程序不在内存中,我就会遇到问题.不会创建backstack.我按照开发人员指南按照步骤操作.请告诉我我错过的位,否则我将必须通过我的所有意图路由HomeActivity,以便按照以下意图手动创建backstack.
AndroidManifest.xml:
<activity
android:name=".activity.HomeActivity"
android:clearTaskOnLaunch="true"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:icon="@drawable/actionbar_logo"
android:label="@string/activity_label_home"
android:launchMode="singleTask"
android:parentActivityName=".activity.Start"
android:windowSoftInputMode="stateAlwaysHidden" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.Start" />
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".activity.ChatActivity"
android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
android:label="@string/activity_label_in_chat"
android:parentActivityName=".activity.HomeActivity"
android:windowSoftInputMode="stateHidden"
tools:ignore="UnusedAttribute" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activity.HomeActivity" />
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/vnd.myapp.chat" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
建筑通知:
final String chatId = cursor.getString(cursor.getColumnIndexOrThrow(MessageColumns.CHAT));
final Intent chat = new Intent(c, ChatActivity.class);
chat.putExtra(ChatActivity.EXTRA_CHAT_ID, chatId);
PendingIntent intent = TaskStackBuilder.create(c).addNextIntentWithParentStack (chat).getPendingIntent (0, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder (c);
final NotificationManagerCompat …Run Code Online (Sandbox Code Playgroud)