`
hemowolf
  • 浏览: 154328 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

调用service静态方法抛RuntimeException问题

阅读更多

    假设有一个service类是 AbcSvr在其内有一个static方法供外调用启动自己。

    public static void startAbcSvr(Context ctx ) {
	      ctx.startService(new Intent(ctx, AbcSvr.class));
    }

   在某种情况下回抛出Exception

   Exception Ljava/lang/RuntimeException; thrown while initializing Lcom/XXXX/AbcSvr;
   

    应是Dalvik的一个bug。解决的办法是将startAbcSvr方法移动到其他类去即可。

分享到:
评论

相关推荐

    java各大公司面试题总结

    - 选项D正确: Java允许方法抛出未声明的`RuntimeException`和`Error`异常。 #### 14. finally块执行机制 - **问题**: 如下代码输出结果是什么? ```java public class Foo { public static void main(String[]...

    Spring基础:AOP编程(3)

    如果方法抛出未检查异常(继承自RuntimeException的异常)或显式声明为需回滚的异常,Spring会回滚事务;否则,它会在方法正常结束时提交事务。 总的来说,Spring AOP为开发者提供了一种优雅的方式,将关注点分离,...

    什么情况会导致@Transactional事务失效?

    3. **静态方法**:由于静态方法不属于任何实例,Spring AOP无法通过代理方式对它们进行拦截,因此`@Transactional`注解不会对静态方法起作用。 4. **异常处理不当**:`@Transactional`依赖于异常传播来决定事务是否...

    Spring中@Transactional事务回滚(含实例

    1. **默认回滚规则**:如果在`@Transactional`方法中抛出未检查异常(继承自`RuntimeException`的异常)或者`Error`,Spring将自动回滚事务。 2. **非默认回滚规则**:对于受检异常(即没有继承自`RuntimeException`...

    2011最全整理最好最让你满意的java笔试面试题

    Servlet容器(如Tomcat)加载Servlet后调用init()方法初始化,然后根据请求调用service()方法处理,最后在服务器关闭或卸载Servlet时调用destroy()方法。 6. **Servlet与CGI的区别**:Servlet是基于Java的Web组件,...

    超级完整的Android面试题(附答案)

    `onCreate()` 方法会在 Service 被创建时调用。Service 的生命周期方法还包括 `onStartCommand()`、`onBind()`、`onUnbind()` 等。 以上总结了给定文件中提到的面试题及其答案的相关知识点。这些知识点覆盖了 Java ...

    java面试资料汇总

    servlet的生命周期涉及init()、service()、destroy()方法,servlet实例被创建一次,但service()会被多次调用。 servlet的单线程模式是通过synchronized关键字或者在servlet实现中用同步块来实现。 以上是Java面试...

    java应届毕业生笔试题.docx

    - **服务阶段**:调用`service()`方法处理客户端请求。 - **销毁阶段**:调用`destroy()`方法释放资源,该方法在容器卸载Servlet前调用。 **6. Java 中实现多态的机制** - **方法重写**:子类重写父类的方法。 - *...

    Java开发笔试题.doc

    - 请求处理:每当有请求到达,Servlet容器调用service()方法,根据请求类型调用相应的doGet()或doPost()等方法。 - 销毁:服务器关闭或卸载Servlet时,调用destroy()方法。 1. **排序算法与Java实现快速排序** -...

    Java英文单词汇总编程资料java应届毕业生笔试题编程资料

    - 其他选项:A不完全正确,调用可能会抛出异常的方法时,可以通过捕获异常或声明抛出异常来处理;C错误,`throw`和`throws`的用法不同;D错误,`try`块后面可以有`catch`和/或`finally`块。 5. **Vector与...

    学习java要掌握的面试知识点借鉴.pdf

    当客户端首次请求Servlet时,服务器创建Servlet实例并调用`init`方法,接着每次请求都会调用`service`方法,最后在服务器关闭或不再需要Servlet时调用`destroy`方法。 10. **ArrayList, Vector, LinkedList的比较**...

    android笔试题

    9. **Service生命周期**:Service的`onCreate()`在服务首次创建时调用,`onStartCommand()`或`onStart()`处理启动请求。如果服务已经运行,再次启动只会调用`onStartCommand()`,不再执行`onCreate()`。 10. **...

    Android技术面试整理附有详细答案

    虽然API未声明抛出异常,但在运行时仍可能发生RuntimeException。例如,如果某个方法的参数不符合预期,可能会抛出IllegalArgumentException。开发者应编写健壮的代码,进行适当的参数检查和错误处理。 #### 21. ...

    android面试题

    - **可能性**:虽然API文档中没有明确声明,但在某些情况下可能会抛出RuntimeException。 - **解决方法**:通过代码审查和单元测试来发现潜在的问题,并添加适当的异常处理。 #### 21. IntentService的优点 - **...

    Android技术面试整理

    20. Android API运行时可能抛出RuntimeException,遇到此类异常时,需要捕获并进行处理,以保证应用的稳定性。 21. IntentService适合执行不需要UI线程处理的后台任务,它包含一个工作队列,用于处理接收到的Intent...

    分好类的Java面试题

    服务阶段,每次客户端请求,Servlet 容器都会调用 `service()` 方法。销毁阶段,当服务器关闭或者 Servlet 被卸载时,会调用 `destroy()` 方法。 Servlet 和 CGI(Common Gateway Interface,通用网关接口)的主要...

    JAVA程序员面试题2

    - **服务请求**:每次客户端请求时,都会调用`service()`方法处理请求,根据HTTP方法的不同自动调用`doGet()`、`doPost()`等方法。 - **销毁**:当Servlet不再被使用时,服务器会调用`destroy()`方法释放资源。 2....

    android面试题带答案

    当第一次创建`Service`时,会先调用`onCreate()`方法,之后每次启动`Service`时会调用`onStartCommand()`方法。如果`Service`已经被创建过,再次启动时只会调用`onStartCommand()`方法。因此,本题正确答案是AD。 #...

    Android面试题,排版好的

    子类可以通过super关键字调用父类的构造方法。如果子类没有定义构造方法,那么默认会有一个无参构造方法,这并不会导致父类的无参构造方法被覆盖。 4. 条件判断: 在Java中,if语句的逻辑判断中,如果条件不成立,...

Global site tag (gtag.js) - Google Analytics