Java Android-如何在服务和命令行之间通信

Java Android-如何在服务和命令行之间通信,java,android,service,Java,Android,Service,我想制作一个在后台运行的android应用程序,从我的bash脚本接收字符串 应用程序使用该字符串显示带有文本的祝酒词 但是我不知道如何将字符串发送到应用程序,也不知道如何接收字符串 请提供帮助您可以通过am使用Intent并将其发送到您的服务。这看起来像: adb shell am startservice -a com.yourpackage.action.name.SHOW_TOAST -e text "i did it" .... @Override public void onSt

我想制作一个在后台运行的android应用程序,从我的bash脚本接收字符串
应用程序使用该字符串显示带有文本的祝酒词
但是我不知道如何将字符串发送到应用程序,也不知道如何接收字符串

请提供帮助

您可以通过
am
使用
Intent
并将其发送到您的服务。这看起来像:

adb shell am startservice -a com.yourpackage.action.name.SHOW_TOAST -e text "i did it"
....

@Override
public void onStart(Intent intent, int startId) {
    Toast.makeText(this, "Text: " + intent.getStringExtra("text"), Toast.LENGTH_LONG).show();
}
....
您的服务可能如下所示:

adb shell am startservice -a com.yourpackage.action.name.SHOW_TOAST -e text "i did it"
....

@Override
public void onStart(Intent intent, int startId) {
    Toast.makeText(this, "Text: " + intent.getStringExtra("text"), Toast.LENGTH_LONG).show();
}
....
并将下一个条目添加到
AndroidManifest.xml

 <service  android:name="com.yourpackage.SomeService">
     <intent-filter>
            <action android:name="com.yourpackage.action.name.SHOW_TOAST" />
     </intent-filter>
 </service>


该类应称为SHOW\u TOAST或什么?不,这是Intent action的名称。我已经更新了答案。我在回答之前已经测试过了。因此,如果有什么东西不适合你,请告诉我。但现在我想知道如何停止你应该阅读的服务。它很好地描述了服务是如何工作的。