簡體   English   中英

onReceive從未調用

[英]onReceive never called

我有以下代碼,我想檢測手機的屏幕,但是永遠不會調用onReceive函數,任何人都可以給我解決方案。 請幫忙。 如果有人還有其他工作代碼,請提供幫助。 謝謝

package com.pack;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;

public class Screen extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        IntentFilter filter = new IntentFilter();
        filter.addAction(Intent.ACTION_SCREEN_OFF);
     Context con = this;
        this.registerReceiver(new BroadcastReceiver() {

              @Override
              public void onReceive(Context context, Intent intent) {
               System.out.println("Screen off...................");
              }
            }, new IntentFilter(Intent.ACTION_SCREEN_OFF));
    }

}

您的代碼對我有用。 我修改了代碼,以使其更易於閱讀和添加一些sysout,但是它的工作方式與您編寫代碼的方式相同:

public class Test extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_OFF);
    registerReceiver(new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            System.out.println("Screen off...................");
        }

    }, filter);
}

@Override
protected void onResume() {
    super.onResume();
    System.out.println("onResume()");
}

@Override
protected void onDestroy() {
    super.onDestroy();
    System.out.println("onDestroy()");
}

@Override
protected void onPause() {
    super.onPause();
    System.out.println("onPause()");
}

如果執行此操作,它將打印以下內容(開始活動,關閉屏幕,打開屏幕,按返回按鈕):

onResume()
onPause()
Screen off...................
onResume()
onPause()
onDestroy()

此后,活動被銷毀,因此不顯示任何事件。 也許您想改為在AndroidManifest中注冊您的BroadcastReceiver。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM