Articles of 服务

Android – 定期后台服务 – build议

我正在开发一个应用程序,将有关其位置的信息传递给远程服务器。 我打算通过做一个简单的HTTP发布到Web服务器来做到这一点,一切都很简单。 但根据规范,应用程序需要不时地执行,每30分钟一次。 独立于界面,即使应用程序closures,也需要运行它。 我环顾四周,发现Android服务是需要使用的。 我可以用什么来实现这样一个系统。 服务(或其他机制)在手机重新启动时是否会重新启动? 提前致谢。

从通知开始服务

是否可以从通知开始服务? 开始一个活动的正常方式是完美的,但我需要一些预先检查数据,然后才能真正启动应用程序。 我已经在通知意图中包含有效的服务进行了testing,但没有任何反应。

如何在前台(上)活动(应用程序)发生变化时得到通知

我想写一个Android平台的服务,在当前的前台活动发生变化的时候会收到通知。 基本上服务应该只在顶级活动发生变化时才执行一些任务。 这种事件发生时,有没有办法可以订阅和通知? 或者是没有可能性,服务应该不时轮询正在运行的活动列表,并检查前台活动是什么?不是最好的解决scheme…

Android:用参数启动服务

要从Activiy启动我的服务,我使用startService(MyService.class) 。 这很好,但在特殊情况下,服务应该以不同的方式开始。 我想传递一些参数到服务启动。 我在我的活动中尝试了以下内容: Intent startMyService= new Intent(); startMyService.setClass(this,LocalService.class); startMyService.setAction("controller"); startMyService.putExtra(Constants.START_SERVICE_CASE2, true); startService(startMyService); 在我的服务中,我使用: public class MyIntentReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals("controller")) { // Intent was received } } } IntentReceiver在onCreate()中注册如下: IntentFilter mControllerIntent = new IntentFilter("controller"); MyIntentReceiver mIntentReceiver= new MyIntentReceiver(); registerReceiver(mIntentReceiver, mControllerIntent); 有了这个解决scheme,服务启动,但意图不被接收。 我如何启动服务并传递参数? 谢谢你的帮助!

为什么使用android服务?

我想知道当你需要做很多事情来访问任何公共方法或从一个服务(比如一个更大的List对象)获取大量数据时,使用android服务来做后台工作的意义。 为什么不只是使用一个简单的POJO在后台为你在一个单独的线程中做东西,如果你喜欢并获得访问其公共方法,而无需使用AIDL创build接口,绑定到服务等? 似乎哟需要做很多工作来访问从服务类的方法或是真的不是在Android的服务类的点? 我已经开发了一个android服务类,从一个web服务获取一个xml结构中的100个项目,然后我将它parsing成一个POJO,然后存储在一个列表中,但是我很难find一种方法将这个列表发送callback用此服务的活动。 我已经读过关于使用parcebales对象,但随着所有intent.putExtra有一个大小的限制,所以我可能会遇到问题在未来。 我想抛开Android服务,我很快就发现为什么我不喜欢在第一个地方使用它们:( 一个简单的SomeBackgroundPojo backroundTask = new SomeBackgroundPojo(); backgroundTask.getData(); SomeBackgroundPojo backroundTask = new SomeBackgroundPojo(); backgroundTask.getData(); 似乎soooo比处理parcelables,可实现的对象,AIDL,绑定etcc等都更容易,只是为了实现我刚刚input的两行代码:(

在Android中,如何避免onStart方法被弃用?

我遇到了在我的应用程序中设置onStart方法的问题。 它总是有一个删除线,说:“这个方法已被弃用在API级别5.我需要onStart,而不是onStartCommand。 我该如何解决这个问题? MyNotificationService.java import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.widget.Toast; public class MyNotificationService extends Service { @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); Toast.makeText(this, "OnCreate()", Toast.LENGTH_SHORT).show(); } @Override public void onDestroy() { // TODO Auto-generated […]

推送通知在应用程序处于后台或未运行时工作不正确

我正在使用Firebase云消息传递发送推送通知。 这是我的FirebaseMessageService : public class FireBaseMessageService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { Log.e("TAG", "From: " + remoteMessage.getFrom()); Log.e("TAG", "Notification Message Body: " + remoteMessage.getData().get("CardName")+" : "+remoteMessage.getData().get("CardCode")); sendNotification(remoteMessage.getNotification().getBody()); } private void sendNotification(String messageBody) { Intent intent = new Intent(this, StartActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, PendingIntent.FLAG_ONE_SHOT); Uri […]

获取广播接收器/或服务中的GPS位置以广播接收器数据传输

我是新来的android。 我想要在广播接收器中获取GPS位置,但是显示错误。 我的代码是: public void onReceive(Context context, Intent intent) { LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); // errors in getSystemService method LocationListener locListener = new MyLocationListener(); locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locListener); Location loc = locManager .getLastKnownLocation(LocationManager.GPS_PROVIDER); Log.d(" **location**", " location" + loc.getLatitude()); } 问题: 广播接收机可以获取GPS位置数据吗? 另一种我迄今尝试过的方式是使用广播接收机调用的服务。 该服务可以获得GPS数据,但我怎样才能得到它在广播接收机?

获取应用程序上下文

这可能是一个简单的问题,但我只是想确保我是对的。 在我的Android应用程序,我有一个构造函数,使用: activity.getApplicationContext() 该活动作为parameter passing给构造函数。 问题是我从一个服务调用这个类。 如果我做第二个接受服务作为参数,并使用service.getApplicationContext构造函数? 我会得到相同的应用程序上下文吗?

来自Android服务的警报对话框

如何显示服务中的对话框?