2011-12-07 29 views
6

Tôi đang gọi startActivity để truyền dữ liệu từ hoạt động này sang hoạt động khác bằng ngữ cảnh của hoạt động trong lớp bên ngoài.startActivity tạo phiên bản Hoạt động mới mỗi lần

Đây là một ví dụ về cách tôi có thể tạo sự chú ý và được gửi:

public static Intent createSearchIntent(Context context, Class<?> cls) { 
    Intent i = new Intent(ACTION_SEARCH, null, context, cls); 
    return i; 
} 

Đây là cách tôi bắt đầu một hoạt động:

mContext.startActivity(mIntent); 

EDIT: Xin lỗi, tôi đã sai lầm trong chuyện gì xảy ra Hoạt động này không bị hủy khi tôi gọi startActivity, tuy nhiên hoạt động tôi gửi ý định luôn có phương thức onCreate được gọi là vì vậy tôi đoán rằng một phiên bản mới của hoạt động đang được tạo thay vì quay lại trạng thái dừng/dừng.

Làm cách nào để tôi có thể thay đổi để tôi có thể quay lại Hoạt động bị tạm dừng/đã dừng?

+1

Nó không nên kết thúc hoạt động của bạn ở tất cả trừ khi hệ thống có ít tài nguyên. Vui lòng chỉnh sửa câu hỏi của bạn để bao gồm mã của bạn. –

+0

Làm thế nào bạn có thể nói hoạt động của bạn bị phá hủy? bạn có thấy stacktrace trong logcat cho hoạt động đó không? – user370305

Trả lời

8

Đây là thời điểm bạn cần sử dụng cờ. Để thực hiện hoạt động đã bắt đầu trước đó để quay lại đầu ngăn xếp, bạn cần thêm cờ i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); vào ý định của mình và sau đó bắt đầu hoạt động- startActivity(i) với 'i' là tên mục đích.
Để biết danh sách các cờ khác có giao diện here.

+0

Đây chính xác là những gì tôi cần, cảm ơn bạn! – ayelder

+0

Cảm ơn. Nó làm việc cho tôi. –

4

Hoạt động gọi B từ hoạt động A không theo mặc định không tự hủy Hoạt động A, những gì bạn thấy là Hoạt động B được hiển thị trên Hoạt động A, chồng chéo màn hình. Bạn có thể kiểm tra bằng cách nhấn nút Back.

Đó là vòng đời Hoạt động: http://developer.android.com/reference/android/app/Activity.html

+0

Xin lỗi, bạn đã đúng. Tôi đã thay đổi câu hỏi của mình để phản ánh điều này. – ayelder

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