2012-07-03 9 views

Trả lời

102

Bạn có thể sử dụng phương pháp finish() hoặc bạn có thể sử dụng:

android:noHistory="true" 

Và sau đó là không cần phải gọi finish() nữa.

<activity android:name=".ClassName" android:noHistory="true" ... /> 
+5

bạn có chắc chắn điều này làm những gì bạn nói không? từ tài liệu android: FLAG_ACTIVITY_NO_HISTORY Nếu được đặt, hoạt động mới sẽ không được lưu trong ngăn xếp lịch sử. Ngay sau khi người dùng điều hướng khỏi nó, hoạt động đã kết thúc. Điều này cũng có thể được thiết lập với thuộc tính noHistory. – 10s

+14

android: noHistory = "true" KHÔNG giống như kết thúc()! –

+1

Chỉ cần sử dụng kết thúc(), không sử dụng noHistory –

4

FLAG_ACTIVITY_NO_HISTORY khi bắt đầu hoạt động bạn muốn kết thúc sau khi người dùng chuyển sang hoạt động khác.

http://developer.android.com/reference/android/content/Intent.html#FLAG%5FACTIVITY%5FNO%5FHISTORY

+1

FLAG_ACTIVITY_NO_HISTORY làm điều ngược lại. Hoạt động mới không được lưu trong lịch sử, trong khi tôi muốn Hoạt động trước đó được hoàn tất. – pixel

+2

Vâng, đó là những gì tôi đã nói. Hoạt động A bạn muốn kết thúc, Hoạt động B được truy cập từ hoạt động A. Bắt đầu hoạt động A với cờ tôi đề cập để khi người dùng đi lang thang từ hoạt động a đến hoạt động B, hoạt động A đã kết thúc. Như tôi đã đề cập trong câu trả lời: "... khi bắt đầu hoạt động bạn muốn kết thúc ...". Đó là câu trả lời giống như câu trả lời được xác nhận. – 10s

52

Sử dụng finish như thế này:

Intent i = new Intent(Main_Menu.this, NextActivity.class); 
finish(); //Kill the activity from which you will go to next activity 
startActivity(i); 

FLAG_ACTIVITY_NO_HISTORY làm điều ngược lại. Hoạt động mới không được lưu trong lịch sử, trong khi OP muốn Hoạt động trước đó được hoàn tất.

Để tìm hiểu thêm về việc sử dụng Intent.FLAG_ACTIVITY_NO_HISTORY đọc: http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NO_HISTORY

+3

FLAG_ACTIVITY_NO_HISTORY làm ngược lại. Hoạt động mới không được lưu trong lịch sử, trong khi tôi muốn Hoạt động trước đó được hoàn tất. – pixel

+8

không 'kết thúc()' giả sử để giết hoạt động hiện tại? làm thế nào để bạn mong đợi nó đạt đến dòng tiếp theo 'startActivity (i)'? Có vẻ nguy hiểm và bất ngờ với tôi – Michael

+3

@Michael Calls is async startActivity() sẽ được gọi. – tomi