service的隱式啟動和顯示啟動

2021-10-01 17:06:33 字數 952 閱讀 1715

private void validateserviceintent(intent service)  else 

}}

既然,原始碼裡是這樣寫的,那麼這裡有兩種解決方法: 

1、設定action和packagename: 

intent mintent = new intent();

mintent.setaction("***.***.***");//你定義的service的action

mintent.setpackage(getpackagename());//這裡你需要設定你應用的包名

context.startservice(mintent);

此方式是google官方推薦使用的解決方法

2、設定componentname:

intent intent = new intent();

componentname componentname = new componentname(pkgname,servicename);

intent.setcomponent(componentname);

context.startservice(intent);

補充知識點:在android5.0之前的顯示和隱式啟動service

隱式啟動

final intent serviceintent=new intent();

serviceintent.setaction("com.android.service");

顯示啟動

final intent serviceintent=new intent(this,service.class);

startservice(serviceintent);

啟動遠端service的兩種方式 顯示和隱式

1 顯式啟動 service端 android exported true 客戶端 public static final string name gesture detector remote service com.easyliu.watchgesture.service.gesturedete...

Intent顯示啟動與隱式啟動

android的acitivity啟動大致有兩種方式 顯式啟動與隱式啟動。下面分別介紹 1.顯示啟動 清單檔案註冊activity activity android name com.example.intentmethod.xianshiactivity android label string ...

顯示提交 和 隱式提交

我發現有人經常 濫用 oracle 中的commit和rollback的用法。首先,大家要清楚 commit rollback,都是用在執行 dml 語句之後的。所謂 dml 語句就是 insert delete update select 而 create table view 之類的語句,是 d...