我有一个简单的问题,但我在谷歌上找不到任何东西,也许我使用了错误的关键词。
我正在开发一个带有后台服务的应用程序。始终启动此服务。我有一个自定义按钮的手机,可以启动应用程序。但我想使用此按钮开始对我的服务采取行动,不要开始任何活动。
要做到这一点,我想到了一个丑陋的解决方案:我配置我的自定义按钮来启动另一个应用程序。这个应用程序是一个blanck活动,在onCreate()事件上我只是发送一个itent到我的服务,并在完成活动后。
我的问题是如何将自定义意图发送到其他应用? 我的想法:在blanck活动中写下这个
@Override
public void onCreate(){
super.onCreate();
Intent customIntent = new Intent("com.customIntent.action");
startActivity(customIntent);
finish();
}
在我的服务上做这样的事情:
IntentFilter it = new IntentFilter();
it.addAction("com.customIntent.action");
registerReceiver(myReceiver, it);
感谢您的帮助!
答案 0 :(得分:1)
您正在注册receiver
,只有在意图调用sendBroadCast
时才会捕获它。其次,您使用Activity
操作开始Intent
。 xml / code中没有Activity
来处理此操作。第三,您可以在Intent Filter
中针对特定接收者和AndroidManifest
使用
Activity
Intent customIntent = new Intent("com.customIntent.action");
LocalBroadcastManager.getInstance(this).sendBroadcast(customIntent);
<强>的AndroidManifest.xml 强>
<receiver android:name="." >
<intent-filter>
<action android:name="com.customIntent.action" />
</intent-filter>
</receiver>
希望这有帮助。
答案 1 :(得分:-1)
我不知道我是否正确理解了您的问题,但本教程非常清楚地说明了您如何使用意图与其他应用进行互动:
http://developer.android.com/training/basics/intents/index.html