Articles of android service

用于小部件更新的RemoteViews超出最大位图内存使用错误

我有一个小部件,它parsingXML feed,并显示它的标题和图像。在这个小部件中,我使用了一个定期更改内容(即标题和图像)的服务。为此,我使用timer类。当我们运行这个小部件时,一些内容显示没有任何问题,但在某些时候它强制closures,并显示错误,如“小部件更新RemoteViews超过最大位图内存使用(使用:2465280最大:2304000)总内存不能超过填写设备的屏幕一旦”。 请有人帮我解决这个问题…在此先感谢 这是我的AppwidgetProvider => public class myappwidgetprovider extends AppWidgetProvider { public static String urls="http://www.abc.com/en/rssfeeds/9/latest/rss.xml"; // XML node keys static final String KEY_HEAD = "item"; // parent node //static final String KEY_TITLE = "title"; static final String KEY_DATE = "pubDate"; public static String headflag="english"; public static String[] Title; public static String[] Description; public static String[] […]

Android应用程序内的远程服务与单独的应用程序

我试图找出作为我的客户端应用程序(使用android:process =“:remote”)的一部分编写android远程服务的利弊与使之成为一个单独的服务应用程序。 在这两种情况下,服务将在其自己的独立进程中运行,并有自己的堆等。但是,我们使它成为一个单独的应用程序,因为它将有自己的应用程序沙箱,必须有一些差异。 我发现他们的使用情况和首选方法的例子很多,但我想了解它的内部技术细节。 有关这方面的任何好的信息来源? 编辑:如果服务和客户端进程在同一个应用程序中运行,会对应用程序对象/上下文产生什么样的影响。 它会被其中一个进程覆盖吗? 或者每个进程都会有两个应用程序对象,这些应用程序对于一个应用程序来说听起来不太正确。

不断检查Android服务中的音量变化

我写了这段代码,显然是有缺陷的。 我如何去创build一个服务,将不断检查音量的变化? 关键听众不能在服务中使用,请不要使用音量键监听器发表答案。 我的代码是错误的,因为我给了while循环的虚拟条件。 什么是我的服务检查音量变化,而不是崩溃的条件? 它不能是isScreenOn()因为在听音乐和屏幕closures时音量可以改变。 码 AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE); int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING); int newVolume=0; while(1==1) { newVolume = audio.getStreamVolume(AudioManager.STREAM_RING); if(currentVolume!=newVolume) { Toast.makeText(this, "Volume change detected!", Toast.LENGTH_LONG).show(); } }

Android位置更新在一个服务

我想要做这样的事情: 当我的应用程序启动时,我想启动一个应该检查我的位置的服务 当应用程序转到后台时,我想停止服务 我有两个主要问题: 我怎样才能检测到我的应用程序转到后台? 我有几个活动,我试图在我的MainActivity覆盖onPause,但onPause也被称为当我开始其他活动。 这个问题更重要:我的服务应该如何检查我的位置? 我尝试了几种方法,但没有成功。 我的服务看起来像这样,它不工作。 我应该改变什么才能使之工作? package com.pivoscore.service; import android.app.Service; import android.content.Context; import android.content.Intent; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.os.IBinder; public class LocationService extends Service { private LocationListener locationListener; @Override public IBinder onBind(final Intent intent) { return null; } @Override public int onStartCommand(final Intent intent, final int […]

制作活动在后台运行

我新的Android,我没有太多的服务意识。我有一个用户界面的活动类,我想让这个活动类在后台运行,当我点击后退button。 如何让我的活动像一个服务运行在后台,请帮我..

Android服务能否超越应用程序对象?

所以,这个问题是非常明显的。 如果Service 不在另一个进程中启动,可以自定义Application对象(我在AndroidManifest.xml声明的那个)被销毁吗? 我的直觉说这是不可能的,因为我们可以通过调用getApplication()来访问Service的Application对象,再加上我在文档中没有看到类似的东西,但是Android充满了意想不到的有趣行为。

唤醒lockingandroid服务重复

我有这个应用程序需要运行一个服务(背景),周期性地发出嘟嘟声。 手机需要每隔一分钟哔一声,持续5秒钟(在服务中使用一个处理程序)。 我已经实现了这个完美的服务,但是当手机进入深度睡眠模式时,这个处理程序的执行停止。 在这个问题中使用这个答案,我设法使用唤醒锁,它工作正常。 但是,当我明确地把手机置于深度睡眠模式时,处理程序停止执行。 我在哪里放置唤醒服务。 下面的代码片段。 public class PlaySound extends Service{ PowerManager.WakeLock wl ; PowerManager pm; private SoundManager mSoundManager; boolean wakeUpFlag = false; @Override public void onCreate(){ super.onCreate(); mSoundManager = new SoundManager(); mSoundManager.initSounds(getBaseContext()); mSoundManager.addSound(1, R.raw.sound); } @Override public int onStartCommand(Intent intent, int flags, int startId) { startservice(); return START_STICKY; } private void startservice() { […]

将服务绑定到BroadcastReceiver

我有一些服务类,它注册了多个警报。 在我的BroadcastReceiver类中,我想让onReceive ()方法调用Service类的某个方法。 但是,我不明白我怎么能把他们绑在一起。 我试图让BroadcastReceiver成为一个内部类,但是我得到了更多的错误,根本无法触发警报。 谢谢

如何在一天的特定时间停止服务?

我已经能够在每天的特定时间开始一项服务,但我想要做同样的事情停止,但我不知道如何。 这里是我用来使用AlarmManager启动服务的代码。 注意:我是新来的Android开发,所以提供一个完整的评论代码将不胜感激。 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 9); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); PendingIntent pi = PendingIntent.getService(getApplicationContext(), 0, new Intent(getApplicationContext(), Service.class), PendingIntent.FLAG_NO_CREATE); AlarmManager am = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE); am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pi);

Android – Firebase jobdispatcher

我想知道是否有可能使用Firebase jobdispatcher安排url命中并获取响应以更新数据库。 我希望它在晚上每天运行一次。 有谁知道这是可能的吗? 我找不到任何这样做的好例子。 我已经阅读了Android文档和https://github.com/firebase/firebase-jobdispatcher-android#user-content-firebase-jobdispatcher- 。 我需要使用Firebase jobdispatcher,因为我的目标是API 16。 提前致谢。 UPDATE 这是我每天安排一次的时间。 final int periodicity = (int) TimeUnit.HOURS.toSeconds(24); final int toleranceInterval = (int) TimeUnit.HOURS.toSeconds(1); FirebaseJobDispatcher dispatcher = new FirebaseJobDispatcher(new GooglePlayDriver(this)); Job job = dispatcher.newJobBuilder() .setService(UpdateTVJobService.class) .setTag(JOB_TAG) .setTrigger(Trigger.executionWindow(periodicity, periodicity + toleranceInterval)) .setLifetime(Lifetime.FOREVER) .setRecurring(true) .setReplaceCurrent(true) .build(); int result = dispatcher.schedule(job); if (result != FirebaseJobDispatcher.SCHEDULE_RESULT_SUCCESS) { Log.d("JOB_TAG", […]