Service错误
2024-10-09 18:19:27
错误日志:
Caused by: java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=m4 (has extras) }
at android.app.ContextImpl.validateServiceIntent(ContextImpl.java:1809)
at android.app.ContextImpl.startServiceCommon(ContextImpl.java:1838)
at android.app.ContextImpl.startService(ContextImpl.java:1822)
at android.content.ContextWrapper.startService(ContextWrapper.java:516)
at myapplication.com.canvas.MainActivity.start(MainActivity.java:24)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:284)
at android.view.View.performClick(View.java:4793)
at android.view.View$PerformClick.run(View.java:19960)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5593)
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:967)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)
补充代码:
<1> 配置文件:
<service android:name=".service.FirstService" >
<intent-filter>
<action android:name="m4" />
</intent-filter>
</service>
<2>
public class FirstService extends Service {
/*
* intent:startServcie(it)传入的值
* startId:启动服务的次数序号
*
*/
@Override
public int onStartCommand(Intent intent, int flags, int startId) { int x = intent.getIntExtra("x", 0);
//System.out.println("--"+startId+"--"+x);
if (x==88) {
//停止服务
stopSelf();
}
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
System.out.println("--onDestroy");
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
} }
<3>
public class MainActivity extends AppCompatActivity { TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); }
public void start(View v){
Intent it=new Intent();
it.setAction("m4");
it.putExtra("x", 88); startService(it);
}
}
错误修改:
public void start(View v){
Intent it=new Intent();
it.setAction("m4");
it.putExtra("x", 88);
it.setPackage("myapplication.com.canvas");//应用的包名
startService(it);
}
最新文章
- install sun java in ubuntu
- Javascript中的Prototype到底是啥
- oracle的全文索引
- vim乱码处理
- mvc3.0ModelFirst生成实体
- 一起啃PRML - 1.1 Example: Polynomial Curve Fitting 多项式曲线拟合
- Chrome扩展与用户隐私
- SQL1-(增删改查、常用函数)
- QSlider解决点击不能到该位置问题
- 要重定向 IO 流,Process 对象必须将 UseShellExecute 属性设置为 False。
- ZJOI2017 Day2
- Java Stream API性能测试
- 第二次项目冲刺(Beta阶段)--第二天
- jersey实现文件下载
- lr_场景设计之知识点-集合点、loadgenerator
- CentOS编译安装软件过程中遇到zlib.h: No such file or directory
- AIDL通信过程中设置死亡代理
- scrapy选择器归纳
- mybatis教程之原理剖析
- php获取数据库中数据