Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
274 views
in Technique[技术] by (71.8m points)

android - How to clear specific activity from the stack history?

Suppose I have an application containing activities named A,B,C,D. Now, consider A has been launched as the root activity and B has been launched from A and C has been launched from B and D has been launched from C. Now I have a button named "Remove" in the activity D. If suppose, I press the button "Remove" in the activity D, then the activity B and activity C should be removed from the history stack. On Pressing back key from the activity D should display activiy A instead of C. I don't know how to implement this. Can anyone help me to resolve this problem?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I'm not sure you can directly programmatically remove activities from the history, but if you use startActivityForResult() instead of startActivity(), then depending on the return value from your activity, you can then immediately finish() the predecessor activity to simulate the behaviour you want. By using this method in all your activities, you can have this behaviour cascading the activity stack to allow you to go from activity D to activity A.

I know this isn't your situation, but in future if you know before you start the activity that you don't want the predecessor to remain, you can call finish() immediately after startActivity().

Please see the section called "Lifetime of the New Screen" in Common Tasks and How to do Them in Android


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...