Articles of intentservice

没有调用IntentService

我试图从一个Activity中的onCreate发送一个Intent来启动一个IntentService。 但是永远不会收到IntentService的onHandleIntent。 我尝试使用Intent-filters更改Manifest,但似乎没有任何工作。 没有抛出exception,但根本没有调用IntentService。 这是onCreate @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); db = new TwitterDB(this); String[] columns = new String[1]; columns[0] = TwitterDB.TEXT; tAdapter = new SimpleCursorAdapter(this, 0, null, columns, null, 0); tweets = (ListView)findViewById(R.id.listtwitter); tweets.setAdapter(tAdapter); Intent intent = new Intent(this, SyncService.class); intent.putExtra(“action”, SyncService.TWITTER_SYNC); this.startService(intent); } 这是IntentService类的创建者和onHandleIntent,我知道它没有被调用,因为logcat从不显示“检索到的意图”。 也没有调用构造函数(那里有一个日志调用,但我删除了它。 public SyncService(){ super(“SyncService”); twitterURI = […]

当我启动IntentService时,Android应用程序崩溃了

我启动IntentService后,我的应用程序崩溃了。 我正在尝试使intentservice读取加速度计数据。 即使屏幕关闭,我打算使用部分唤醒锁来保持开启状态。 所以intentService从sensorEventListener扩展我在清单中添加了COURSE_LOCATION和FINE_LOCATION权限。 这是我的堆栈跟踪 java.lang.RuntimeException: Unable to start service com.shreeasish.safer.SensorIntentService@163c49fe with Intent { cmp=com.shreeasish.safer/.SensorIntentService }: java.lang.NullPointerException: Attempt to invoke virtual method ‘android.os.Message android.app.IntentService$ServiceHandler.obtainMessage()’ on a null object reference at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2941) at android.app.ActivityThread.access$2100(ActivityThread.java:155) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1415) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5343) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700) Caused by: java.lang.NullPointerException: Attempt to […]

意图服务启动后,防止更改应用程序演示Android的顺序

我有以下情况:一个主要应用程序是启动器应用程序(A) , 应用程序始终运行 ,此应用程序调用另一个子应用程序(B)图1。 当应用程序(A)启动intent service并且应用程序(B)使用此意图时(图2),会出现问题。 这是用于启动意向服务的代码: 服务 intentCodeRead.putExtra(BARCODE_TEXT, readStr); intentCodeRead.putExtra(BARCODE_DATE, System.currentTimeMillis()); intentCodeRead.setFlags(Intent.FLAG_RECEIVER_FOREGROUND); sendBroadcast(intentCodeRead); 有任何建议的标志来防止这种行为? 编辑1 在应用程序(A) (启动器应用程序)中,我有一个intentService ,它向另一个应用程序进行broadcast 。 应用程序(B)是收听此广播的应用程序。 当(A)进行广播时, 应用程序(B)然后收听。 问题是(A)在(A)做广播时带到(B)的前面。 如何在不更改应用程序演示顺序的情况下进行broadcast ? 编辑2 申请A. BarcodeScannerService.java intentCodeRead.putExtra(Constants.BARCODE_TEXT, readStr); intentCodeRead.putExtra(Constants.BARCODE_DATE, System.currentTimeMillis()); intentCodeRead.setFlags(Intent.FLAG_RECEIVER_FOREGROUND); sendBroadcast(intentCodeRead); initservice.java Intent intentService = new Intent(context, BarcodeScannerService.class); context.startService(intentService); 申请B. receive.java BroadcastReceiver actionBarcodeScannerAndPresenceReceiver = new BroadcastReceiver() { @Override public void onReceive(Context […]

如何validationIntentService启动

我正在尝试使用Espresso-2.2测试我的应用行为 在主要活动上,当按下按钮时,正在启动服务和另一个活动: public class MainActivity extends Activity { public void onButtonClicked() { startActivity(SecondActivity.getStartIntent()); startService(MyIntentService.getStartIntent()); } } 我正在测试是否正在启动预期的组件: public class MainActivityTest { @Rule public final IntentsTestRule intentsRule = new IntentsTestRule(MainActivity.class, true); @Test public void shouldStartServiceOnButtonClicked() { onView(withId(R.id.button)).perform(click()); intended(hasComponent(hasClassName(SecondActivity.class.getName()))); intended(hasComponent(hasClassName(MyIntentService.class.getName()))); } } 但是我收到了错误: Caused by: junit.framework.AssertionFailedError: Wanted to match 1 intents. Actually matched 0 intents. IntentMatcher: has […]

方法onHandleIntent()不会被调用

经过几个小时的研究,我终于咨询了官方的帮助。 为什么不调用onHandleIntent() ? 这里有什么问题吗? 在主要活动onCreate() : mService = new Intent(context, xyz.class); startService(mService); 发布它。 调用onStartCommand() ,但不onHandleIntent() package com.autoalbumwallaperplus; import android.app.IntentService; import android.content.Intent; import android.widget.Toast; public class xyz extends IntentService { public xyz() { super(“bmp”); } @Override public int onStartCommand(Intent intent, int flags, int startId) { Toast.makeText(this,”onStartCommand works!”, Toast.LENGTH_SHORT).show(); return super.onStartCommand(intent,flags,startId); } @Override protected void onHandleIntent(Intent workIntent) […]

java.lang.RuntimeException无法实例化服务:java.lang.NullPointerException

我试图创建一个启动服务的活动(在新线程中)。 它包含一个带有两个editText和一个名为Send的按钮的布局。 关键是当我执行MainActivity时,它会抛出: 06-15 22:32:13.312: E/AndroidRuntime(643): FATAL EXCEPTION: main 06-15 22:32:13.312: E/AndroidRuntime(643): java.lang.RuntimeException: Unable to instantiate service hikoki.services.NotificationsService: java.lang.NullPointerException 06-15 22:32:13.312: E/AndroidRuntime(643): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2237) 06-15 22:32:13.312: E/AndroidRuntime(643): at android.app.ActivityThread.access$1600(ActivityThread.java:123) 06-15 22:32:13.312: E/AndroidRuntime(643): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201) 06-15 22:32:13.312: E/AndroidRuntime(643): at android.os.Handler.dispatchMessage(Handler.java:99) 06-15 22:32:13.312: E/AndroidRuntime(643): at android.os.Looper.loop(Looper.java:137) 06-15 22:32:13.312: E/AndroidRuntime(643): at android.app.ActivityThread.main(ActivityThread.java:4424) 06-15 22:32:13.312: E/AndroidRuntime(643): at java.lang.reflect.Method.invokeNative(Native Method) […]

IntentService的默认构造函数(kotlin)

我是Kotlin的新手,也是使用intentService的一点点堆栈。 Manifest向我显示一个错误,我的服务不包含默认构造函数,但在服务内部它看起来没问题且没有错误。 这是我的intentService: class MyService : IntentService { constructor(name:String?) : super(name) { } override fun onCreate() { super.onCreate() } override fun onHandleIntent(intent: Intent?) { } } 我还尝试了另一种变体: class MyService(name: String?) : IntentService(name) { 但是当我尝试运行此服务时,我仍然会收到错误: java.lang.Class has no zero argument constructor 任何想法如何修复Kotlin中的默认构造函数? 谢谢!

IntentService响应死亡的ResultReceiver

活动实例化ResultReceiver并覆盖onReceiveResult。 然后,活动将Intent发送到IntentService,并将ResultReceiver包含为额外的。 一旦IntentService完成处理,它就会将消息发送回ResultReceiver并在onReceiveResult中处理它。 问题是如果用户导航离开Activity,则结果仍然会发送回ResultReceiver,从而导致所有types的问题。 有没有办法阻止这种行为? 我已经尝试在活动的onDestroy()中停止IntentService,但结果仍然被发回。 这是一个活动示例 public class Foo extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent i = new Intent(this, SampleIntentService.class); i.putExtra(“receiver”, mReceiver); startService(i); } @Override public void onDestroy() { stopService(new Intent(this, SampleIntentService.class)); mReceiver = null; super.onDestroy(); } ResultReceiver mReceiver = new ResultReceiver(new Handler()) { @Override protected void onReceiveResult(int resultCode, […]

IntentService的onStartCommand(..)方法线程是否安全?

我有一个IntentService类,可以从复杂应用程序中的各个位置启动 – 活动,后台线程,其他服务。 我想知道调用服务的次数。 我在我的IntentService类中使用私有intvariables来跟踪它,我从我的onStartCommand(…)方法中增加它。 它只是发生在我身上,因为可以从各种异步线程调用onStartCommand(…)方法,这可能不是一个线程安全的解决方案。 所以问题是,我是否需要在同步块中包含对此计数器variables的访问,或者onStartCommand(…)的IntentService实现是否为我处理这个问题? 作为一个注释,我知道我可以安全地从onHandleIntent(…)增加variables,但我需要计算实际请求而不是执行的意图。

点按以获取更多信息或停止应用

我创建服务和自定义通知任何工作正常,但Android说应用程序正在通知点击运行更多信息或停止应用程序。 我怎样才能解决这个问题。 我的自定义BroadcastReceiver public class ServiceBootCompleteReciver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent service = new Intent(context, ServiceNotification.class); context.startService(service); } 我需要取消注册此接收器吗? 我的定制硝化课程 public class CustomNotification extends Notification { public void notifiaction(String txt) { ThreadSms thread = new Thread(); threadSms.start(); ; if (ThreadSms.newMessage) { Intent notificationIntent = new Intent(GlobalController.currentActivity, ActivityMain.class); PendingIntent […]