对其他应用

时间:2016-01-15 11:55:45

标签: android android-intent

我有一个简单的问题,但我在谷歌上找不到任何东西,也许我使用了错误的关键词。

我正在开发一个带有后台服务的应用程序。始终启动此服务。我有一个自定义按钮的手机,可以启动应用程序。但我想使用此按钮开始对我的服务采取行动,不要开始任何活动。

要做到这一点,我想到了一个丑陋的解决方案:我配置我的自定义按钮来启动另一个应用程序。这个应用程序是一个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);

感谢您的帮助!

2 个答案:

答案 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