Articles of intentservice

即使应用程序关闭,如何保持IntentService运行?

在我的Android应用程序中,我通过调用从Activity中启动IntentService startService(new Intent(this, MyService.class)); 它就像一个魅力。 我可以在Activies之间移动,按Home键切换到其他应用程序……它仍在工作。 但如果我从最近的屏幕上删除我的应用程序,我的服务就会停止。 我怎么能避免这个? 换句话说,即使我的应用程序已从最近的应用程序关闭,如何保持我的服务运行? 我的服务代码如下: public class MyService extends IntentService { public MyService() { super(“MyService”); } @Override protected void onHandleIntent(Intent intent) { //Here I run a loop which takes some time to finish } }

正确的方法来停止IntentService

我正在使用IntentService将图像上传到服务器。 我的问题是我不知道如何/何时停止服务。 当我在onHandleIntent(Intent ..)中调用stopself()时,将删除在IntentService队列中等待的所有Intents。 但是我不想从活动中停止服务,因为我想完成上传过程,即使我的应用程序没有运行。

从IntentService或AsyncTask进行REST API调用?

想象一下,一个活动打开的典型场景,需要调用REST HTTP API来获取一些内容,并且一旦收到更新UI。 显然,API调用需要在单独的线程上进行,但是应该使用AsyncTask,IntentService还是其他方法来完成,为什么?

android中的service,intentService有什么区别?

Android和Android中的IntentService什么区别? Android中的AsyncTask和IntentService什么区别?

在Android的IntentService中等待异步回调

我有一个IntentService ,它在另一个类中启动异步任务,然后应该等待结果。 问题是一旦onHandleIntent(…)方法运行完毕, IntentService就会完成,对吧? 这意味着,通常, IntentService将在启动异步任务后立即关闭,并且不再存在以接收结果。 public class MyIntentService extends IntentService implements MyCallback { public MyIntentService() { super(“MyIntentService”); } @Override protected final void onHandleIntent(Intent intent) { MyOtherClass.runAsynchronousTask(this); } } public interface MyCallback { public void onReceiveResults(Object object); } public class MyOtherClass { public void runAsynchronousTask(MyCallback callback) { new Thread() { public void run() { // […]

IntentService不会显示Toast

我创建的这个IntentService将在onStartCommand()和onDestroy()中显示Toasts,但不在onHandleIntent()中显示。 我错过了一些关于IntentService限制的内容吗? public class MyService extends IntentService { private static final String TAG = “MyService”; public MyService(){ super(“MyService”); } @Override protected void onHandleIntent(Intent intent) { cycle(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Toast.makeText(this, “service starting”, Toast.LENGTH_SHORT).show(); //This happens! return super.onStartCommand(intent,flags,startId); } @Override public void onCreate() { super.onCreate(); } @Override public […]

如何从IntentService创建吐司? 它卡在屏幕上

我试图让我的IntentService显示一个Toast消息,但是当从onHandleIntent消息发送它时,toast显示但是卡住了屏幕并且从不离开。 我猜它是因为onHandleIntent方法不会发生在主服务线程上,但我怎么能移动它? 有人有这个问题并解决了吗?

Android如何检查目标服务是否仍在运行或已停止运行

我需要知道队列中的所有intentservices是否被“消耗”,或者另一种方法是找出它是否还在做什么,以便在所有服务都停止运行之前我不会继续。 有任何想法吗?

IntentService创建的通知始终使用错误的Intent

问题 当用户按下发送“按钮1” (向下滚动以查看应用程序的构造)时,将从RefreshService创建新的Notification 。 如果用户按下此通知, MainActivity实例将启动并在Intent接收值为Button 1的String 。 显示该值。 当用户现在按下发送“按钮2”时,将从RefreshService创建新的Notification 。 如果用户按下此通知, MainActivity实例将启动并在Intent接收一个String ALSO ,其值为Button 1 。 所以你可以猜到,通常应该有值Button 2 。 当用户按下的第一个按钮是发送“按钮2”时 ,总是会发送Button 2 。 获得第二个按钮值的唯一解决方案是重新启动手机并先按第二个按钮。 即使强行关闭也行不通。 我知道我也可以用另一种方式更改UI。 但是我需要在app中使用这种方法,我需要用另一个Intent重新启动’MainActivity’,所以方法应该是相同的。 施工 一个名为MainActivity的Activity 一个名为RefreshService的IntentService 主要活动 public class MainActivity extends Activity implements View.OnClickListener { public static final String RECEIVED = “received”; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); […]

何时取消注册BroadcastReceiver? 在onPause(),onDestroy()或onStop()中?

我什么时候应该使用unregisterReceiver? 在onPause() , onDestroy()或onStop() ? 注意:我需要该服务在后台运行。 更新: 我得到一个exception释放接收器null 。 活动已泄露意图接收者是否缺少对unregisterReceiver();调用unregisterReceiver(); 请告诉我是否有问题,这是我的代码: private boolean processedObstacleReceiverStarted; private boolean mainNotificationReceiverStarted; protected void onResume() { super.onResume(); try { registerReceivers(); } catch (Exception e) { Log.e(MatabbatManager.TAG, “MAINActivity: could not register receiver for Matanbbat Action ” + e.getMessage()); } } private void registerReceivers() { if (!mainNotificationReceiverStarted) { mainNotificationReceiver = new MainNotificationReceiver(); […]