相关疑难解决方法(0)

Android - 启动时启动服务

从我在Stack Exchange和其他地方看到的所有东西,我已经正确设置了所有东西,以便在Android OS启动时启动IntentService.不幸的是它没有启动,我没有收到任何错误.也许专家可以提供帮助......

表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.phx.batterylogger"
  android:versionCode="1"
  android:versionName="1.0"
  android:installLocation="internalOnly">

<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BATTERY_STATS" />

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <service android:name=".BatteryLogger"/>
    <receiver android:name=".StartupIntentReceiver">  
        <intent-filter>  
            <action android:name="android.intent.action.BOOT_COMPLETED" />  
        </intent-filter>  
    </receiver>
</application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

BroadcastReceiver for Startup:

package com.phx.batterylogger;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class StartupIntentReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent serviceIntent = new Intent(context, BatteryLogger.class);
        context.startService(serviceIntent);
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:我尝试了下面的所有建议,并且我将日志记录添加Log.v("BatteryLogger", "Got to onReceive, …

java android broadcastreceiver intentservice

96
推荐指数
1
解决办法
10万
查看次数

当应用程序从多任务托盘停止时,Android应用程序未收到Firebase通知

我在SO上读过类似的问题,然而,我无法从中得到正确的答案.

我有一个系统,我们向大约500个设备发送通知.

不幸的是,许多这些设备没有收到通知.我发现OPPO F1系列手机特别没有收到通知.

我发现,如果应用程序从多任务托盘中停止,则会发生这种情况.我该如何解决这个问题?

更新:我观察到当我从任务托盘关闭应用程序时,我的应用程序被强制停在应用程序管理器中.当我从任务托盘关闭Whatsapp时,仍然没有强制停止.怎么被Whatsapp处理?

android firebase firebase-cloud-messaging firebase-notifications

67
推荐指数
3
解决办法
4万
查看次数

即使应用关闭(滑动/滑动)也会收到GCM消息

这是在MainActivity中用作BroadcastReceiver的代码

 //Initializing our broadcast receiver
    mRegistrationBroadcastReceiver = new BroadcastReceiver() {

        //When the broadcast received
        //We are sending the broadcast from GCMRegistrationIntentService

        @Override
        public void onReceive(Context context, Intent intent) {
            //If the broadcast has received with success
            //that means device is registered successfully
            if(intent.getAction().equals(GCMRegistrationIntentService.REGISTRATION_SUCCESS)){
                //Getting the registration token from the intent
                String token = intent.getStringExtra("token");
                //Displaying the token as toast
                Toast.makeText(getApplicationContext(), "Registration token:" + token, Toast.LENGTH_LONG).show();

                //if the intent is not with success then displaying error messages
            } else if(intent.getAction().equals(GCMRegistrationIntentService.REGISTRATION_ERROR)){
                Toast.makeText(getApplicationContext(), …
Run Code Online (Sandbox Code Playgroud)

android google-cloud-messaging firebase-cloud-messaging

5
推荐指数
1
解决办法
8068
查看次数