0

当 DayDream 停止时,我如何让我的应用程序监听。当系统停止做梦时,它会发送 ACTION_DREAMING_STOPPED 字符串。我在 OnResume 和 onCreate 中添加了一个 BroadcastReceiver,并且在 DayDream 停止时都没有使用。那么我应该把我的听众放在哪里呢?如果我用错误的名字称呼某事,我深表歉意,我以前没有与 DayDream 合作过。

@Override
protected void onResume() {
    mDreamingBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            if (intent.getAction().equals(Intent.ACTION_DREAMING_STOPPED)) {
                // Resume the fragment as soon as the dreaming has
                // stopped
                Intent intent1 = new Intent(MainActivity.this, MainWelcome.class);
                startActivity(intent1);
            }
        }
    };
    super.onResume();
}
4

1 回答 1

1

BroadcastReceiver可以在您的onCreate.

确保您使用以下方式注册接收器:registerReceiver(receiver, filter)并且intent-filter您的AndroidManifest.xml.

样本:

MainActivity.java

public class MainActivity extends Activity 
{
    private static final String TAG = MainActivity.class.toString();

    private BroadcastReceiver receiver;
    private IntentFilter filter;

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

        receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent)
            {
                Log.d(TAG, TAG + " received broacast intent: " + intent);
                if (intent.getAction().equals(Intent.ACTION_DREAMING_STOPPED)) {
                    Log.d(TAG, "received dream stopped");
                }
            }
        };

        filter = new IntentFilter("android.intent.action.DREAMING_STOPPED");
        super.registerReceiver(receiver, filter);
    }
}

AndroidManifest.xml

<activity
    android:name="com.daydreamtester.MainActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <action android:name="android.intent.action.DREAMING_STOPPED" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
于 2014-03-14T20:08:52.457 回答