2013-09-23 38 views
16

Tôi gặp vấn đề để hoàn thành hoạt động trước đó. Tôi muốn bắt đầu một hoạt động khác và hoàn thành hoạt động hiện tại. Khi tôi sử dụng finish, nó không thoát khỏi hoạt động hiện tại.Cách kết thúc Hoạt động khi bắt đầu hoạt động khác trong Android?

Làm cách nào để thoát hoạt động trước đây?

+0

ý Ý định = Ý định mới (A.this, B.class); startActivity (intent); kết thúc(); –

+0

Bạn có nghĩa là không có khả năng hai hoạt động đang chạy cùng một lúc, có vẻ như bạn sẽ cần một bên thứ ba để bắt đầu hoạt động thứ hai nếu người đầu tiên chết. Nếu vậy bạn có thể sẽ cần một số loại dịch vụ với một bộ đếm thời gian của các loại. – MikeIsrael

+0

sẽ kết thúc() đưa hoạt động trực tiếp lên onDestroy() từ onResume()? –

Trả lời

67

Bạn cần intentcontext hiện tại của mình cho hoạt động khác trước tiên với startActivity. Sau đó, bạn có thể finish số activity hiện tại của mình từ nơi bạn chuyển hướng.

Intent intent = new Intent(this, FirstActivity.class);// New activity 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
finish(); // Call once you redirect to another activity 
+0

Cảm ơn .. Rất hữu ích và thành công .. – mrhands

+0

lý do chúng tôi sử dụng FLAG_ACTIVITY_CLEAR_TOP @vikalp patel ?? –

+5

Nó đảm bảo rằng bạn không thể quay trở lại hoạt động trước đó bằng nút BACK. – erdomester

0

Đối với ví dụ: bạn đang sử dụng hai hoạt động, nếu bạn muốn chuyển sang từ Hoạt động từ A đến B Hoạt động

Đơn giản chỉ cần cung cấp cho như thế này.

  Intent intent = new Intent(A.this, B.class); 
     startActivity(intent); 
     finish(); 
3
Intent i = new Intent(this,Here is your first activity.Class); 
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(i); 
    finish(); 
1
  1. Cung cấp hoạt động của bạn A trong file manifest: launchMode = "singleInstance"
  2. Khi người dùng nhấp mới, làm FirstActivity.fa.finish(); và gọi tiếp cận mục đích mới.
  3. Khi người dùng nhấp sửa đổi, gọi tiếp cận mục đích mới hay đơn giản là kết thúc hoạt động B.
0
startActivity(new Intent(context, ListofProducts.class) 
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) 
    .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) 
    .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)); 
+0

Tôi có thể yêu cầu bạn thêm một số ngữ cảnh khác xung quanh câu trả lời của bạn. Các câu trả lời chỉ có mã khó hiểu. Nó sẽ giúp người hỏi và người đọc trong tương lai cả khi bạn có thể thêm nhiều thông tin hơn trong bài đăng của mình. – RBT

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