相关疑难解决方法(0)

Android 8.0:java.lang.IllegalStateException:不允许启动服务Intent

在应用程序启动时,应用程序启动应该执行某些网络任务的服务.在针对API级别26后,我的应用程序无法在后台启动Android 8.0上的服务.

引起:java.lang.IllegalStateException:不允许启动服务Intent {cmp = my.app.tt/com.my.service}:app在后台uid UidRecord {90372b1 u0a136 CEM空闲过程:1 seq(0,0) ,0)}

据我所知,它涉及: 后台执行限制

如果针对Android 8.0的应用程序在不允许创建后台服务的情况下尝试使用该方法,则startService()方法现在会抛出IllegalStateException.

" 在不允许的情况下 " - 它实际意味着什么?以及如何解决它.我不想把我的服务设置为"前景"

android android-service android-8.0-oreo

321
推荐指数
11
解决办法
16万
查看次数

如何在屏幕关闭时保持Android服务的运行?

当屏幕关闭时,我的应用程序服务暂停.

我使用以下代码启动我的服务:

if (mSharedPrefs.getBoolean("prefAutoUpdatesMain", false)) {
     Intent svc = new Intent(this, MyService.class);
     startService(svc);
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能避免服务暂停?


我在MyService中要做的是从Internet下载一些数据.如果我理解了我必须遵循的过程:

  1. 获取wakeLock
  2. 下载数据
  3. 发布wakeLock

在下载数据方法时没有引用wakeLock,它是具有wakeLock的应用程序,是否正确?

默认情况下,唤醒锁是引用计数.我认为没有引用计数的wakeLock更好,一定要释放它,我错了吗?

service android

48
推荐指数
2
解决办法
5万
查看次数

如何在Android中使用signalr

我想signalRandroid应用程序中集成但没有运气.我一直在寻找各种链接,但没有一个提供有关实现的正确信息.

我有以下问题.

  • SignalR 集成必须在服务/意图服务中完成?
  • 如果我们想通过相同的调用方法接收响应,那么如何获得?

我已经添加了三个库,即signalr android,signalr clientgson而无法理解的代码是如何工作的,没有适当的文档可以理解的代码.

提出了一些问题但没有太多信息

Android Studio中的SignalR 无法在Android中使用SignalR实现p2p聊天

如果有人对本机应用程序有信号经验,那对我来说会非常有帮助.

更新

    public class SignalRService extends Service {


    private static final String TAG = "Service";
    private HubConnection mHubConnection;
    private HubProxy mHubProxy;
    private Handler mHandler; // to display Toast message
    private final IBinder mBinder = new LocalBinder(); 

    private SharedPreferences sp;

    @Override
    public void onCreate() {
        super.onCreate();

        Utility.showLog(TAG, "Service Created");

        sp = getSharedPreferences(Utility.SHARED_PREFS, MODE_PRIVATE);
        mHandler = new Handler(Looper.myLooper());
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc android signalr

32
推荐指数
1
解决办法
4万
查看次数

持续运行后台服务

我的目标是sdk版本27,最低版本为19,并尝试获得在后台持续运行的服务.我尝试了不同的服务启动选项,但它仍然被应用程序杀死.我尝试使用BroadcastReceiver在它被杀死时启动该服务但是这给了我一个错误,说应用程序在后台并且无法启动服务所以我尝试使用JobScheduler并且这给了我同样的错误.应该怎么做?例如,如果我正在制作计步器应用程序,我怎么能让它在后台运行?

service android android-8.0-oreo

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

Android服务

请解释Android Service.它与一个Activity怎么不同?它是否依赖于应用程序状态,例如在前台/后台运行?

service android

14
推荐指数
1
解决办法
2万
查看次数

谁杀了我的服务?

我已经阅读了关于这个主题的每个Stackoverflow答案,但它们都没有奏效.

目标:始终保持我的服务全天候运行

问题:每当我的设备处于睡眠模式一小时或更长时间时,服务就会被终止


我试图解决它:

  • 返回START_STICKYonStartCommand()使用startForeground()

        public int onStartCommand(Intent intent, int flags, int startId) {
    
            notification = makeStickyNotification(); //I've simplified the irrelevant code, obviously this would be a real notification I build
    
            startForeground(1234, notification);
            return START_STICKY;
            }
    
    Run Code Online (Sandbox Code Playgroud)

这样工作正常,它甚至可以在设备内存不足时重新启动我的服务,但这还不足以解决我的设备暂停一段时间后出现的问题.

  • onCreate()我的Activity和onStartCommand()我的服务中使用Alarm Manager 来调用调用我的服务的广播接收器

            Intent ll24 = new Intent(this, AlarmReceiver.class);
    
            PendingIntent recurringLl24 = PendingIntent.getBroadcast(this, 0, ll24, PendingIntent.FLAG_CANCEL_CURRENT);
    
            AlarmManager alarms = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    
            alarms.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000*60, recurringLl24); // Every minute
    
    Run Code Online (Sandbox Code Playgroud)

这有助于保持我的服务活跃,但同样,不能解决我的问题

testing algorithm service android adb

7
推荐指数
2
解决办法
1428
查看次数