解决方案 »
- Android与保持服务器数据同步
- Android 4.1图库应用 面部发光、面部古铜色效果不能用
- 统一开发环境,有什么发展前景?
- 求助:android 软键盘问题
- 泪奔求解
- 如何在某个联系人下面插入 信息 ?在线等。。
- 新手求教android 中如何调用webservices中的dataset数据
- view设置layout布局,急急急,谢谢啦
- Android 4.1 sdk WebView question
- android studio 编译测试项目的时候出现Style Resource definition cycle错误,求大神指点
- google map 导航问题
- UriMatcher.addURI中的/#/*解释
一般情况是Service的class和Main在一个Android project里,
现在分别在两个Projects。
可以在B包的AndroidManifest.xml中,定义一个receiver的intent-filter,比如...
<receiver
<intent-filter
<action android:name="android.intent.action.GET_CONTENT" />
</intent-filter>
...如后在这个receiver的onreceiver中,启动service。那么在A包broadcast这个action即可。
但是我发现带有Service的那个apk根本没有进入onCreate的生命周期。请问有办法从主程序激活他么?
在androidManifest.xml中:
<receiver android:name="TestReceiver">
<intent-filter>
<action android:name="android.appwidget.action.GET_CONTENT" />
</intent-filter>
</receiver>在TestReceiver.java中:
public class TestReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) {
Intent intent = new Intent();
intent.setClassName(.....);
startActivity(intent);
}
}
}
这也是我们在B包里使用broadcast receiver的原因吧。还有我不明白的是,如果要启动别的activity,直接发送Intent就好,为什么要放在receiver里呢?
然后在其他APK里面New一个Intent为这个Action 就能直接抓取到这个Service了