Articles of android service

任何人都可以解释android中未绑定和绑定服务之间的区别

任何人都可以解释android中的未绑定和绑定服务之间的区别,并解释有意服务 谢谢

你可以在一个单独的进程上启动IntentService吗?

是否可以在单独的进程上启动IntentService ? 怎么样? 如果是这样,是否必须绑定它? 是否可以在单独的进程上启动IntentService 并在前台运行它 ? android:isolatedProcess和android:process什么区别? 请参阅: http : //developer.android.com/guide/topics/manifest/service-element.html

Android Emulator:如何获取正在运行的服务列表

我在我的Ubuntu VM中运行了Android Emulator ,并通过控制台安装了一个apk文件。 模拟器和adb有很多选项可以查看设备上发生的情况。 但是,如何获取当前正在运行的服务列表 ? 我正在尝试查看特定应用是否安装了通知服务来查看(不需要的)广告。 我甚至知道服务的名称。 PS。:我是一名高级初学者 – 但还不够先进。 谢谢你的帮助。

BroadcastReceiver试图在非有序广播期间返回结果 – 在Android中PACKAGE_ADDED

我在下面给出的代码中得到了这个exception。 我不知道这段代码有什么问题。 请帮我摆脱这个例外。 05-23 23:33:49.853: E/BroadcastReceiver(26895): BroadcastReceiver trying to return result during a non-ordered broadcast 05-23 23:33:49.853: E/BroadcastReceiver(26895): java.lang.RuntimeException: BroadcastReceiver trying to return result during a non-ordered broadcast 05-23 23:33:49.853: E/BroadcastReceiver(26895): at android.content.BroadcastReceiver.checkSynchronousHint(BroadcastReceiver.java:783) 05-23 23:33:49.853: E/BroadcastReceiver(26895): at android.content.BroadcastReceiver.setResultCode(BroadcastReceiver.java:549) 05-23 23:33:49.853: E/BroadcastReceiver(26895): at com.waypedia.rupesh.abhi.RetentionApplicationAddedBroadcastReceiver.onReceive(RetentionApplicationAddedBroadcastReceiver.java:18) 05-23 23:33:49.853: E/BroadcastReceiver(26895): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2446) 05-23 23:33:49.853: E/BroadcastReceiver(26895): at android.app.ActivityThread.access$1700(ActivityThread.java:139) 05-23 23:33:49.853: […]

无法启动服务意图:未find

我有同样的问题在这里描述,但我无法理解什么是错的。 我的问题是:无法启动服务Intent {act = .connections.MoodyService} U = 0:找不到 编辑 我已经在源代码中将我的包从连接更改为服务,抱歉让人感到困惑 我的清单 ` service是包,MoodyService是类名 我的服务类 public class MoodyService extends Service { public MoodyService() { // TODO Auto-generated constructor stub } private boolean isRunning = false; Object getContent; @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { […]

如何在同一设备上运行的Android应用程序之间传输文件?

我正在编写一个与RESTful服务接口的Android应用程序。 此Web服务基本上是文件系统的前端,并提供元数据以及对文件的CRUD访问。 我的应用程序检索元数据,并通过ContentProvider将其公开给第三方应用程序。 我需要添加第三方应用程序的能力,在与我的应用程序相同的设备上运行,通过向我/我的应用程序发送请求(而不是直接与服务器)来CRUD实际文件。 这意味着他们需要通过我的应用程序发送或接收文件的内容(通常是XML或图像)。 我想到了实现这个的两种方法: 选项1 – 使用ContentProvider.openFile 这似乎是让第三方应用程序能够从我的ContentProvider读取文件的明显选择。 我认为当这些应用程序需要通过我的`ContentProvider’创建或更新文件时,它开始变得棘手。 完成后我需要回调才能知道何时将新的/更改的文件发送回服务器。 我相信我可以为此目的使用FileObserver 。 选项2 – 通过服务使用Messenger 通过这种方法,我可以通过Messenger在我的应用程序和客户端应用程序之间发送文件。 这些文件必须通过Bundle传递,所以我不确定传输它们的最佳格式是什么( File , FileDescriptor ,byte array,还有其他什么?)。 如果文件变得很大,我不能很好地处理这会导致问题。 选项3 – 混合方法 将外部存储上的文件夹用作下拉框 通过Messenger / Service传达CRUD请求和删除框内容 使用ContentProvider存储请求的状态 第三方应用通过ContentObserver接收状态更新 概要 我认为使用ContentProvider将是理想的解决方案,但似乎API并不完全支持我的用例。 我担心尝试沿着这条路走下去可能会导致一个愚蠢的实施。 如果我使用Messenger和Service方法,我不确定通过Bundle传输文件的最强大的方法。 混合方法似乎非常强大,但实现起来最复杂。 文件实际上并没有被传递,因此性能应该很好。 但是,我担心这会过度设计解决方案。 在同一Android设备上运行的应用程序之间传输文件的最佳方法是什么? 当然,我对我在问题中没有概述的其他选项持开放态度。

IntentService的onHandleIntent(Intent)获取null参数

我正在使用IntentService在Android上为我的应用程序运行后台服务。 奇怪的是,我收到很多崩溃报告,其中传递给onHandleIntent的意图为空。 我甚至不确定这是怎么可能的,而且看起来非常奇怪。 任何人都可以建议为什么会发生这种情况? 堆栈跟踪 java.lang.NullPointerException at com.example.MyService.onHandleIntent(MyService.java:466) at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.os.HandlerThread.run(HandlerThread.java:61) 我的服务文件中的第466行,其中空指针exception: 465 protected void onHandleIntent(Intent intent) { 466 Bundle data = intent.getExtras(); 该服务启动为: serviceIntent = new Intent(this, MyService.class); serviceIntent.putExtra(“ip”, ip); serviceIntent.putExtra(“port”, port); startService(serviceIntent); 编辑:我现在意识到我可能会误用IntentServices。 当我启动服务时,我从onHandleIntent()开始一些工作线程,即使在onHandleIntent()返回后也继续运行。 并通过绑定到服务并调用成员函数/回调来与线程通信。 我将研究使用更好的方法来为此目的使用服务,同时我仍然不明白传递的意图是如何为空。 我只能怀疑Android系统自己使用null意图调用onHandleIntent,这似乎很奇怪。 有人可以解释为什么android系统可能以这种方式调用它吗?

如何在锁定屏幕上执行通知操作(单击)?

TL; DR 如何在没有解锁的情况下通过锁定屏幕进行某些操作的通知? 单击操作,通知上的按钮或完成通知后,我想进行API调用(无需键入解锁代码) 细节 目标 基于这个问题的答案,我试图通过一个在锁定屏幕上工作的动作发出通知,而无需解锁设备。 该操作不需要任何进一步的界面或交互(想想“发送API请求”)。 状态 通知和单击可以使用未锁定的设备。 然而,当锁定时我仍然需要先输入解锁代码,所以要么有新的事情发生,要么我误解了它应该工作的方式。 如果我理解正确,我可以将我的可见性设置为“公共”以显示内容(这是有效的),而不是定义一个动作(似乎不公开)我可以处理(现在可见)布局的点击。 我尝试使用下面的代码,但显然它不起作用。 我已尝试将意图发送到我的应用程序和服务,正如弗洛里安建议的那样。 码 这是我开始通知的代码(它存在于Activity中,代码缩短了以方便您使用) private void startNotification() { NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setVisibility(Notification.VISIBILITY_PUBLIC) .setOngoing(true) .setSmallIcon(R.drawable.abc_ic_menu_share_mtrl_alpha) .setContentTitle(“title text”) .setContentText(“content text”); Intent openIntent = new Intent(MyMainActivity.this, MyMainActivity.class); openIntent.setAction(“some_string”); PendingIntent pOpenIntent = PendingIntent.getActivity(this, 0, openIntent, 0); builder.setContentIntent(pOpenIntent); RemoteViews view = new RemoteViews(getPackageName(), R.layout.notification); builder.setContent(view); NotificationManager […]

互联网监听器Android示例

我正在开发一款能够持续保持与互联网连接的Android应用。 如果Internet是dow,它应该向用户发出适当的消息。 有没有像Internet Listener这样的东西? 或者如何实现此事件,每当Internet连接不可用时,它应该提供警报。

如何使用PendingIntent从服务到客户端/活动进行通信?

我一直在Android开发者网站上阅读以下文本,特别是在框架主题 – >服务 – >启动服务下 。 在那里它陈述如下: 如果服务不提供绑定,则使用startService()提供的意图是应用程序组件与服务之间唯一的通信方式。 但是,如果您希望服务返回结果,则启动该服务的客户端可以为广播创建PendingIntent(使用getBroadcast())并将其传递给启动该服务的Intent中的服务。 然后,该服务可以使用广播来传递结果。 我有几个问题: 此文本是否适用于Service 和 IntentService ? 如何(代码性地)在Service范围内实现这一目标; 然后,该服务可以使用广播来传递结果。 以及所提到的广播将结果传递给原始客户/活动的位置? 是否有一些方法应该被覆盖(如onActivityResult() )或其他什么?