2012-03-17 32 views
6

Vì vậy, tôi có lệnh onResume khởi động lại chuỗi đã dừng chạy vòng lặp trò chơi của mình. Tính năng này hoạt động hoàn hảo để tiếp tục ứng dụng khi được đóng bằng nút trang chủ hoặc bằng cách tập trung vào một ứng dụng khác. Tuy nhiên, khi bạn tắt màn hình rồi bật lại, các hoạt động onResume lệnh sẽ kích hoạt ngay trước khi màn hình được mở khóa. Tôi cần hoạt động của mình để biết thời điểm màn hình được mở khóa để có thể khởi động lại luồng vào thời điểm thích hợp.Xử lý hoạt động khi màn hình mở khóa

Có ai có điều này xảy ra trước đây không?

Trả lời

16

cho phát hiện màn hình trên và tắt màn hình đăng ký một reciver phát sóng như:

AndroidManifest.xml:

<receiver android:name="receiverScreen"> 
     <intent-filter> 
      <action android:name="android.intent.action.SCREEN_ON" /> 
      <action android:name="android.intent.action.SCREEN_OFF" /> 
<action android:name="android.Intent.ACTION_USER_PRESENT" /> 
     </intent-filter> 
    </receiver> 

Trong Hoạt động hoặc dịch vụ:

try { 
       IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON); 

       filter.addAction(Intent.ACTION_SCREEN_OFF); 
filter.addAction(Intent.ACTION_USER_PRESENT); 

       BroadcastReceiver mReceiver = new receiverScreen(); 

       registerReceiver(mReceiver, filter); 
     } catch (Exception e) { 

     } 

nhận mã nơi System thông báo cho bạn nếu màn hình bật/tắt xảy ra:

public class receiverScreen extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)){ 

     } 
     if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)){ 

     } 
if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)){ 

     } 
    } 

    } 
+0

Dường như mã cho AndroidManifest.xml không được bao gồm. – louielouie

+0

rất hữu ích, tuy nhiên ACTION_SCREEN_OFF chỉ thực hiện khi màn hình được bật và màn hình mở khóa xuất hiện, tôi cần điều này để thực thi khi màn hình mở khóa mở khóa và biến mất – tantonj

+0

@tantonj sau đó đăng ký trên bộ thu BroadcastReceiver khác 'Intent.ACTION_USER_PRESENT' –

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