2013-02-21 14 views
9

Tôi có một ứng dụng có hai hoạt động. Đầu tiên được trình bày bằng một nút duy nhất mở nút thứ hai.Các vấn đề với chủ đề mờ

Dưới đây là định nghĩa Manifiest cho người đầu tiên:

<activity 
    android:name="com.example.buttonexample.MainActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 

     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

Thứ hai hoạt động:

<activity 
    android:name="com.example.buttonexample.MainActivity2" 
    android:label="@string/title_activity_main_activity2" android:theme="@android:style/Theme.Translucent"> 
</activity> 

Dưới đây là cách tôi khởi động các hoạt động thứ hai (thông qua OnClickListener cho một nút trên hoạt động đầu tiên) :

public void startSecondActivityClick(View v) { 
    Intent startActivity2 = new Intent(this, MainActivity2.class); 
    startActivity(startActivity2); 
} 

Điều này làm việc tốt, tuy nhiên khi tôi chạy ứng dụng bằng cách nhấn ho tôi và nền trước ứng dụng. Tôi nhận thấy rằng hoạt động đầu tiên liên tục tạo/phá hủy chính nó. Tôi xác nhận điều này bằng cách đặt một số mã trong phương pháp onDestory để tăng một int tĩnh:

private static int count = 0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    count++; 

} 

protected void onDestroy() { 
    super.onDestroy(); 
    Log.i("MainActivity", String.format("Destroyed, %d", count)); 
} 

Tôi cũng đã nhận thấy rằng loại bỏ các chủ đề mờ dường như để sửa lỗi này. Câu hỏi của tôi là có một cách để mờ hoặc một cái gì đó tương tự nhưng cũng có nó không khởi động lại? Ngoài ra, tôi tò mò tại sao điều này xảy ra ở tất cả. Tôi đang thử nghiệm điều này trên 4.0.1 ICS trên một thiên hà SIII.

+0

Ý bạn là nó liên tục tạo và phá hủy chính nó? Bạn có nghĩa là nó đang tạo và phá hủy nhiều lần khi bạn chỉ xem hoạt động thứ hai một lần? Bạn có thể cho chúng tôi một ví dụ về đầu ra Log không? – spierce7

+0

Ý tôi là onCreate và onDestroy đang được gọi nhanh chóng. Tôi sẽ thêm một số đầu ra bản ghi. – noahd

+3

Ok sau khi một số đào tôi đã có thể tìm ra lý do tại sao điều này xảy ra. Ai đó đã bật một trong các tùy chọn nhà phát triển, "không giữ hoạt động". Sau khi tắt điều này, điều này đã dừng lại. Tôi nghi ngờ điều này sẽ không xảy ra trong sản xuất quá thường xuyên như hầu hết mọi người có lẽ không có mà thiết lập trên. – noahd

Trả lời

0

Ok sau khi một số lần đào, tôi đã có thể tìm ra lý do tại sao điều này xảy ra. Ai đó đã bật một trong các tùy chọn nhà phát triển, "không giữ hoạt động". Sau khi tắt điều này, điều này đã dừng lại. Tôi nghi ngờ điều này sẽ không xảy ra trong sản xuất quá thường xuyên như hầu hết mọi người có lẽ không có mà thiết lập trên. Bạn có thể tìm thấy điều này trong cài đặt -> "tùy chọn nhà phát triển" trên hầu hết các điện thoại.