本文选自StackOverflow(简称:SOF)精选问答汇总系列文章之一,本系列文章将为读者分享国外最优质的精彩问与答,供读者学习和了解国外最新技术。在Android中启动Service时出现“undefined
intent constructor
”的错误,怎么办?

问:Ram

我在Activity中尝试启动Service,但出现“undefined intent constructor”的报错信息。

MyService.java代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public
class MyService extends Service {
 
@Override
public
IBinder onBind(Intent intent) {
    return

null
;
}
 
public
static boolean isInstanceCreated() {
      return

instance !=
null;
   }
 
@Override
public
void onCreate() {
    Toast.makeText(this,
"My
Service Created"
,
Toast.LENGTH_LONG).show();
    Log.d(TAG,
"onCreate");
 
     instance
=
this;
}
 
@Override
public
void onDestroy() {
    Toast.makeText(this,
"My
Service Stopped"
,
Toast.LENGTH_LONG).show();
    Log.d(TAG,
"onDestroy");
    instance
=
null;
 
}
 
@Override
public
void onStart(Intent intent, int startid) {
            Toast.makeText(getBaseContext(),
"Service
started"
,Toast.LENGTH_SHORT).show();
    }
 
 
}

启动SampleService.java的代码如下:

1
2
3
4
5
6
7
8
9
  public
class SampleService extends Activity{
@Override
protected
void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.grid_activity);
    Intent
myintent =
new

Intent(SampleService.
this,MyService.this);//Error
show here..
    startService(myintent);
      }
 }

在manifest file中设定service的初值如下:

1
<service
android:enabled=
"true"

android:name=
"com.MyApp.MyService"

/>

请大家帮我解决这个错误。

答:kalyan pvs

(最佳答案)

你不应该使用Service.this,而应该按如下方法改变class:

1
Intent
myintent =
new

Intent(SampleService.
this,MyService.Class);

答:Raghunandan

做如下调整:

1
Intent
myintent =
new

Intent(SampleService.
this,MyService.this);

变为:

1
2
Intent
myintent =
new

Intent(SampleService.
this,MyService.Class);
 //
first param is a context second param is a class in your case a MyServiceClass

你没有设置类似于Intent(SampleService, MyService)的构造函数,在intent constructor参数设定上出现错误。

1
2
3
4
5
6
7
8
9
10
public
Intent (Context packageContext, Class<?> cls)
 
Added
in

API level 1
Create
an intent
for

a specific component. All other fields (action, data, type, class) are
null,
though they can be modified later
with

explicit calls. This provides a convenient way to create an intent that is intended to execute a hard-coded class name, rather than relying on the system to find an appropriate class
for

you; see setComponent(ComponentName)
for

more information on the repercussions of
this.
 
Parameters
packageContext 
A Context of the application package implementing
this

class.
cls
 
The
component class that is to be used
for

the intent.

原文链接:http://stackoverflow.com/questions/20068783/errorundefined-intent-constructor-when-start-service-in-android

文章选自StackOverFlow社区,鉴于其内容对于开发者有所帮助,现将文章翻译于此,供大家参考及学习。9Tech将每日持续更新,读者可点击StackOverflow(简称:SOF)精选问答汇总,查看全部译文内容。同时,我们也招募志同道合的技术朋友共同翻译,造福大家!报名请发邮件至zhangqi_wj@cyou-inc.com。

来自:9Tech

Android undefined intent constructor错误?的更多相关文章

  1. android 图片叠加效果——两种方法的简介与内容 ,带解决Immutable bitmap passed to Canvas constructor错误

    第一种是通过canvas画出来的效果: public void first(View v) { // 防止出现Immutable bitmap passed to Canvas constructor ...

  2. android之intent显式,显式学习

    intent,意图 当从一个Activity到另一个Activity时调用,这里重点学习显式,隐式的使用 使用语句上的区别: 隐式意图:                 显式意图: setAction ...

  3. 【转】【Java/Android】Intent的简介以及属性的详解

    一.Intent的介绍 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述 ...

  4. (转载)android开发常见编程错误总结

    首页 › 安卓开发 › android开发 android开发常见编程错误总结 泡在网上的日子 / 文 发表于2013-09-07 13:07  第771次阅读 android,异常 0 编辑推荐:稀 ...

  5. Android 笔记 Intent and Bundle day7

    学习了Intent与Bundle的使用,进行应用中的交互 package com.example.intent; import android.app.Activity; import android ...

  6. Android 通过 Intent 传递类对象或list对象

    (转:http://www.cnblogs.com/shaocm/archive/2013/01/08/2851248.html) Android中Intent传递类对象提供了两种方式一种是 通过实现 ...

  7. Android中Intent传递对象的两种方法(Serializable,Parcelable)

    今天要给大家讲一下Android中 Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是 Bundle.putP ...

  8. Android中Intent传值与Bundle传值的区别详解

    Android中Intent传值与Bundle传值的区别详解 举个例子我现在要从A界面跳转到B界面或者C界面   这样的话 我就需要写2个Intent如果你还要涉及的传值的话 你的Intent就要写两 ...

  9. Xamarin Android提示内存溢出错误

    Xamarin Android提示内存溢出错误 错误信息:java.lang.OutOfMemoryError, Consider increasing the value of $(JavaMaxi ...

随机推荐

  1. 如何让vba与java的TripleDES算法通用

    本文链接:http://www.cnblogs.com/Charltsing/p/TripleDES.html 众所周知,java默认采用的TripleDES算法是ECB+PKCS#5填充方式.网上可 ...

  2. iOS数据存储-钥匙串存储

    2017.11.20 14:41* 字数 227 阅读 678评论 0喜欢 0 钥匙串介绍   1. 表示设备唯一号的标识,在IOS7中要么被禁止使用,要么重新安装程序后两次获取的标识符不一样. 2. ...

  3. mysql_建表

    建表 某字段多个默认值 创建表时,对多选多的字段设置两个以上的默认值时,两个默认值之间用逗号','隔开,不能加空格. create table student2( id int not null, n ...

  4. html总结:背景图片拉伸

    两种方法: ⑴推荐方法 <style>body {background-image:url(images/backimage.jpg);background-size:cover;}< ...

  5. 学习docker——命令总结

    安装docker的方法可以参考:Ubuntu.CentOS.Windows.MacOS 查看版本信息 → ~ $ docker --version Docker version 18.03.1-ce, ...

  6. 09-babel

    这个是解析我们es6的代码的,为什么要用它呢,因为对于一些ie浏览器,甚至FF浏览器,低版本的还不能识别我们的es6代码,那么vue里面好多还让我们去写es6的代码,这个时候我们就可以用babel这个 ...

  7. Access使用记录

    iif函数 此函数类似编程语言中的双目运算符,官方解释如下: 在任何可以使用表达式的位置均可使用 IIf.您可以使用 IIf 确定另一个表达式为 True 还是 False.如果表达式为 True,则 ...

  8. MySQL数据性能优化-修改方法与步骤

    原文:http://bbs.landingbj.com/t-0-240421-1.html 数据库优化应该是每个设计到数据库操作应用必须涉及到的操作. 经常调试修改数据库性能主要有三个方面 1.MyS ...

  9. object-fit 属性的用法介绍

    这个要在宽,高都是100%的情况下才能提现 object-fit 属性的用法介绍 fill(不保持纵横比缩放图片,使图片完全适应) contain(保持纵横比缩放图片,使图片的长边能完全显示出来) c ...

  10. Codeforces 1154C Gourmet Cat

    题目链接:http://codeforces.com/problemset/problem/1154/C 题目大意: 主人有一只猫.周一&周四&周日:吃鱼周二&周六:吃兔子周三 ...