此行为通常可通过Intent标志进行控制,例如,例如:
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
应该按预期行事。
看来在这种情况下,这不是系统/意图行为,它可能是特定于您正在使用的消息传递应用程序。
当在OnePlus one/Android M上进行测试时,如果我将Messaging
应用用作默认的短信应用,或者使用Google Play的Google Messages
应用,则会得到两种不同的情况。
看起来有点进入第一场景后退按钮返回到外部的短信应用的主要活动,我看到LogCat
下面几行:
ActivityManager: START u0 {act=android.intent.action.SENDTO dat=sms:xxx-xxx-xxxx flg=0x10808000 cmp=com.android.messaging/.ui.conversation.LaunchConversationActivity
ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x1000c000 cmp=com.android.messaging/.ui.conversationlist.ConversationListActivity}
ActivityManager: START u0 {flg=0x14000000 cmp=com.android.messaging/.ui.conversation.ConversationActivity
ActivityManager: Displayed com.android.messaging/.ui.conversation.ConversationActivity
这意味着,在上市活动SENDTO
的操作是LaunchConversationActivity
,它自己调用startActivity
到ConversationListActivity
,然后在相同的任务ConversationActivity
中打开,所以后退按钮返回到SMS主Activity,而不是您的。