2010-01-13 31 views
9

ứng dụng của tôi có hai hoạt động, mà tôi bắt đầu theo thứ tự này:Android: giữ cho hoạt động ngăn xếp công việc sau khi khởi động lại từ CHỦ

HOME > A > B 

Bây giờ tôi nhấn HOME và ra mắt "A" một lần nữa. Tôi muốn xem hoạt động "B" ở đầu "A", nhưng thay vào đó tôi nhận được "A" - vì vậy ngăn xếp hoạt động sẽ bị xóa.

Manifest:

<activity android:name=".activity.A" android:label="A" android:alwaysRetainTaskState="true"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

<activity android:name=".activity.B" android:label="B"> 
    <intent-filter> 
    </intent-filter> 
</activity> 

Tôi nên làm gì?

+0

Bạn có chắc chắn rằng bạn đang nhận được A và không phải B hoặc là 'android: label' của bạn cho '.activity.B' là lỗi đánh máy trong câu hỏi? –

+0

Ah, đây là lỗi đánh máy cho nhãn .activity.B (chỉ cố định). Tôi vẫn thấy A trong khi chờ đợi B. – alex2k8

+1

những gì bạn muốn là hành vi tiêu chuẩn, vì vậy có lẽ có một số lỗi chính tả hoặc lỗi ở nơi khác. thử "thoát" ứng dụng hoàn toàn trước khi thử nghiệm điều này, đó là khởi động nó và bấm lại cho đến khi ngăn xếp rõ ràng, sau đó khởi chạy lại? – James

Trả lời

10

Tôi đã tìm ra điều gì sai ...

Cấu hình đúng, nhưng tôi đã bắt đầu áp dụng gỡ lỗi từ Eclipse, đây là vấn đề.

Case # 1.

Debug > A > B > HOME > A 
Get: A (stack is cleared) 

Case # 2.

Debug > A > BACK > A > B > HOME > A 
Get: B (stack preserved) 

Case # 3.

A > B > HOME > A 
Get: B (stack preserved) 
+0

Ahh, thú vị! Đã có rất nhiều câu hỏi như thế này trong một hoặc hai ngày qua, vì vậy có lẽ đó là câu trả lời cho một số người trong số họ :) –

+0

Lưu ý rằng hành vi này đã được sửa trong bản phát hành 0.9.6 của plugin ADT cho Eclipse. Bây giờ bạn có thể khởi chạy ứng dụng của mình một cách vui vẻ từ Eclipse và có được hành vi tương tự như trên một thiết bị. –

+0

Cảm ơn bạn đã cung cấp thông tin này, Christopher! – alex2k8

2

Chúng tôi đã phát hiện ra đây là một vấn đề Android nổi tiếng - nó đã được đã chính thức theo dõi herehere.

Mặc dù họ nói (không kiểm tra) nó đã được sửa trong bản phát hành 0.9.6 của plugin Eclipse ADT Tôi vẫn có thể thấy điều này trên thiết bị thực trong khi nâng cấp ứng dụng OTA. Ít nhất điều này xảy ra cho Android 1.6, 2.0.1, 2.1 và 2.2.

Chúng tôi đã tạo giải pháp cho sự cố này. Kiểm tra xem nó ra here.

1

Nó không phức tạp. Bạn chỉ cần thao tác tệp kê khai.

AndroidManifest.xm

<activity 
    android:name=".MainActivity" 
    android:alwaysRetainTaskState="true" 
    android:exported="true" 
    . 
    . 
    . 

đọc về 'android: xuất khẩu' & 'android: alwaysRetainTaskState' ở đây:

android:exported

android:alwaysRetainTaskState

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