当前位置: 首页 > 知识库问答 >
问题:

混淆Android IntentService[副本]

霍襦宗
2023-03-14
@Override
public void onStart(Intent intent, int startId) {
    Message msg = mServiceHandler.obtainMessage();
    msg.arg1 = startId;
    msg.obj = intent;
    mServiceHandler.sendMessage(msg);
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    onStart(intent, startId);
    return mRedelivery ? START_REDELIVER_INTENT : START_NOT_STICKY;
}

当我用debug模式启动intentservice的子类时,发现它先调用onstart方法,然后执行onStartCommand方法,但在onStartCommand方法中,它没有调用“onstart(intent,startId);”

由于我看到了源代码,我认为应该是首先调用onStartCommond方法,然后在onStartCommond方法中做onStart方法,正如上面的结果显示的,我混淆了,有没有人帮助我?谢谢

共有1个答案

许曦
2023-03-14

在阅读本文档时,我编写了一个名为“MyService”的新类,它扩展了Service并覆盖了onStart方法和onStartCommand方法,如下所示:

@Override
public void onStart(Intent intent, int startId) {
    Log.e(TAG,"onStart");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    Log.e(TAG,"onStartCommand");
    Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
    ........
}

在我启动我的服务后,它只调用onStartCommand方法,但是onStart方法从来没有被调用过!所以,我认为,因为我在sdk中调试的是android源代码,而不是我的项目中的源代码,所以在运行时调试是不正确的。但是我仍然拒绝IntentService.java中的源代码,onStartCommand方法仍然调用onStart(intent,startId);

如果你有什么建议,请告诉我!谢谢!

 类似资料:
  • 我一直在摆弄Proguard配置,我想测试只是为了优化 但我仍然会遇到这样的错误: java.lang.IllegalArgumentExc0019:找不到[org/apache/log/log4j/core/jackson/Log4jXmlMoules](有1个已知的超级类)和[org/apache/log/log4j/core/jackson/Log4jJsonMoules](有4个已知的超级

  • Powershell的混淆目前已经使用的越来越多,国内外也有了较多的研究,在今年的BH大会上也有对应的议题,关注点是反混淆,那么里面的一些姿势很值得我们学习,我们提供一些混淆实例,来让大家对于PS的混淆做到一个初步了解,也为防御混淆提供一些思路。 实例 在混淆之前,先看看powershell编码执行的方式。 -EC,-EncodedCommand,-EncodedComman,-EncodedCo

  • 我的困惑是wile创建镜像主机端口在Dockerfile中被指定为8080,但当从同一个镜像主机端口运行容器时,被指定为3000。那么这个容器将在哪个主机端口运行,为什么?

  • 问题内容: 我正在寻找一个好的Java混淆器。 我已经对以下Java混淆器进行了初步研究:proguard,yguard,retroguard,dasho,alatorari,jshrink,smokescreen,jobfuscate,marvin,jbco,jode,javaguard,jarg,joga,cafebabe,donquixote,mwobfu,bbmug,zelix klass

  • 我对混淆有问题。为了获得更好的想象力: JAVA代码 本机代码 在我想发布一个混淆版本之前,一切都很好。这个类中的Java类(例如)和方法的名称被proGuard重命名为“a”和“a()”(这可能并不总是相同的),但在本机代码中,方法和类的原始名称保持不变,因为它被硬编码为字符串,如下所示: ...有没有办法动态设置方法名?

  • 我正在努力解决JavaFX应用程序的模糊问题。以本项目为基础: Proguard配置文件:-dontoptimized-dontshrink 有人有JavaFX模糊处理的经验吗?