0

我有一个 gcm 接收器,但在重新启动手机之前和清理内存之后它无法正常工作。我应该改变什么来保证接收器总是工作?

   <activity
            android:name="com.example.diyet.MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        </activity>

<activity android:name="com.plugin.gcm.PushHandlerActivity"/>
<receiver android:name="com.plugin.gcm.CordovaGCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" >
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
        <category android:name="com.plugin.gcm" />
    </intent-filter>
</receiver>
<service android:name="com.plugin.gcm.GCMIntentService" />,

提前致谢

4

2 回答 2

0

如果你想手动启动你的接收器然后使用

registerReceiver(receiver)在您的活动中

于 2013-10-14T13:36:25.077 回答
0

抱歉,我对 GCM 一无所知,但如果我猜对了,您有以下可能性之一

如果您的 GCMIntentService 是自定义的,您可以制作此服务STICKY,以便操作系统在崩溃后重新启动它。为此,您必须返回return Service.START_STICKY;onStartCommand 方法。

您也可以注册以android.intent.action.BOOT_COMPLETED在设备启动后立即启动您的服务。

如果你想防止服务崩溃,当应用程序崩溃时,你必须把它放在另一个线程中。这可以通过在清单中设置自定义进程名称来实现

android:process="com.gigatronik.presenter.serialport.SerialPortListenerService"/

我会编辑这个答案,如果你能给我更多关于你的问题的信息,因为我从来没有使用过 GCM

于 2013-10-14T14:40:53.417 回答