2012-07-30 38 views
7

enter image description hereQuay trở lại màn hình trước đó mà không cần tạo ví dụ mới

Như đã giải thích trong hình ảnh, dòng chảy là một cái gì đó như thế này. Vì vậy, bất cứ khi nào người dùng nhấp vào nút biểu tượng Hoạt động A nên được gọi. Vì giải pháp đơn giản, chúng tôi có thể sử dụng phương pháp này ...

Intent intent = new Intent(activity, activityToStart); 
startActivity(intent); 

Nhưng hoạt động này sẽ tạo hoạt động mới cho ứng dụng của tôi. nhưng tôi cần gọi cùng một ví dụ của hoạt động khi chúng ta tiến lên trong sơ đồ lưu lượng. từ Hoạt động A đến B và sau đó một lần nữa trên B có thể được gọi một cách dễ dàng bằng cách gọi finish() nhưng từ Hoạt động C hoặc D, cách quay lại A.

Tôi hết ý tưởng nhưng không nhận được bất kỳ kết quả hiệu quả nào. Xin hãy giúp tôi nếu bạn có bất cứ đề nghị hoặc ở bất cứ nơi nào tôi đang đi sai. Cảm ơn trước.

+1

Hãy xem [FLAG_ACTIVITY_CLEAR_TOP] (http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP) – Praveenkumar

Trả lời

12

Để quay lại từ D đến A, hãy sử dụng Cờ định hướng.

Intent intent = new Intent(activity, activityToStart); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 
startActivity(intent); 

FLAG_ACTIVITY_CLEAR_TOP, sẽ thay vì tạo hoạt động mới, nó sẽ gọi hoạt động trên stack, và sẽ bật tất cả các hoạt động trên hoạt động được gọi.

+0

ok Cảm ơn bạn. Tôi sẽ cho nó nó một cơ hội. – Android

+0

+1 Giải pháp phù hợp. – Praveenkumar

0

Bằng cách đặt Hoạt động A là "SingleTask", bạn có thể đạt được điều này. Khi một Hoạt động ở trong SingleTask khi nhấp vào nút Home, các hoạt động khác sẽ bị xóa khỏi ngăn xếp.

Tham khảo những liên kết cho biết thêm trên Android Sinh Hoạt ...

Link 1 - Android Fundamentals

Link 2 - Another Similar Question

+0

Đừng nghĩ rằng theo cách này tôi sẽ không thể đạt được chức năng nút quay lại. Dù sao cũng cảm ơn. – Android

0

Sử dụng ViewFlipper để đi và trở lại giữa các cửa sổ khác nhau trong cùng một hoạt động.

ViewFlipper vf = (ViewFlipper) findViewById(R.id.view_flipper); 

Để đi đến cửa sổ tiếp theo

vf.showNext(); 

Để đi đến cửa sổ trước

vf.showPrevious(); 
0

Thay vì dùng

Intent intent = new Intent(activity, activityToStart); 
startActivity(intent); 

Sử dụng

Intent intent = new Intent(activity, activityToStart); 
startActivityforResult(intent,1234); 

Điều này sẽ đảm bảo rằng Hoạt động A không bị giết và khi bạn hoàn thành hoạt động của mình C, hoạt động A sẽ được tiếp tục.

Note: - Bất cứ khi nào Bạn tạo một hoạt động mới, chưa hoàn thành (Thoát) Hoạt động chủ, The Hoạt động chủ được lưu trên stack để LIFO

LIFO: - Last In First Out

+0

Cảm ơn lời giải thích. Tôi chắc chắn sẽ thử giải pháp của bạn. – Android

0

Tôi không chắc chắn, điều này là đúng cách hay không, nhưng bạn có thể cho nó một thử!

Bạn có thể kết thúc() hoạt động hiện tại khi bạn mở hoạt động mới bắt đầu từ Hoạt động-B.

tức

Để mở Hoạt động-C => kết thúc Hoạt động-B và bắt đầu Hoạt động-C

Để mở Hoạt động-D => kết thúc Hoạt động-C và bắt đầu Hoạt động-D

nay khi bạn sẽ nhấn lại, Hoạt động-A sẽ mở ra.

+0

Cảm ơn. Tôi sẽ cố gắng theo đề nghị của bạn – Android

Các vấn đề liên quan