2012-02-15 27 views
6

Tôi gặp sự cố khi khởi chạy hoạt động trong dự án của mình.Hoạt động Launcher + singleTask trong Android

Hoạt động 'Trang chủ' của tôi (H) cho phép chọn một số dịch vụ trong đó. Giả sử S11 -> ...-> S1n là luồng hoạt động cho dịch vụ (S1). H là hoạt động LAUNCHER cho ứng dụng của tôi.

Ngoài ra, tôi cần chuyển sang ứng dụng khác từ H và quay lại ứng dụng đó. Vì tôi không thể thay đổi hành vi ứng dụng đó, tôi phải khai báo hoạt động H của mình là 'singleTask' để ngăn không cho có một số phiên bản của nó trong ngăn xếp hoạt động của tôi.

Vấn đề là ứng dụng của tôi không thể khởi chạy lại mà không cắt bỏ các hoạt động đã được đẩy sau H. Vì vậy, ví dụ nếu tôi có H-S11-S12, sau đó nhấn HOME và khởi chạy lại từ menu ứng dụng gần đây tôi nhận được H hoạt động tiền cảnh.

Bất kỳ ý tưởng nào? Có cách nào để kết hợp này hoạt động không? Cảm ơn!

+0

bạn có thể giải thích nó với các ví dụ tốt hơn, điều gì làm bạn có ý nghĩa bởi cần phải chuyển sang một ứng dụng khác từ H và lưng với nó, và các hoạt động S11 ....? – user2450263

+0

do đó, vấn đề là khi bạn mở lại ứng dụng từ danh sách ứng dụng gần đây, các hoạt động khác trong ngăn xếp sẽ vẫn còn trong ngăn xếp, phải không? – himanshu1496

+0

Làm cách nào để bạn bắt đầu "ứng dụng khác"? Tôi không thể thấy nó gây ra nhiều trường hợp hoạt động H của bạn như thế nào. – totoro

Trả lời

-1

Bạn không cần singleTask. Sử dụng startActivityForResult thay vì startActivity. Hoặc sử dụng Fragments thay vì Activities

startActivityForResult(new Intent(H.this,S11),1); 

public onActivityResult(int requestCode){ 
    if(requestCode == 1){ 
     startActivityForResult(new Intent(H.this,S12),2); 
    }else if(requestCode == 2){ 
     startActivityForResult(new Intent(H.this,S12),3); 
    } 
    ... 
} 
Các vấn đề liên quan