java - 如何从 Activity 中提取Android服务中的字符串值?

标签 java android android-intent android-service

如何从 Activity 中提取 Android 服务中的字符串值?

我的 Activity 有编辑文本,输入的字符串必须在我的服务中接收。

TempLaunch.java:

公共(public)类 TempLaunch 扩展了 Activity {

  private EditText text;
  private Button okbtn;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.templaunch);

    addListenerOnButton();

  }

  public void addListenerOnButton() {

    text = (EditText) findViewById(R.id.edittext_newid);    
    okbtn = (Button) findViewById(R.id.button_newid);


    okbtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

          Toast.makeText(TempLaunch.this, "In Temp launch class ",Toast.LENGTH_SHORT).show();
          Toast.makeText(TempLaunch.this, text.getText(),Toast.LENGTH_SHORT).show();


            Intent intent = new Intent(getApplicationContext(), MainActivity.class);



            Toast.makeText(TempLaunch.this, "I am in Main activity class ",Toast.LENGTH_SHORT).show();
            startActivity(intent);

        }

    });


    Intent i = new Intent(this, MusicService.class);

    i.putExtra("DD_URL", text.getText().toString());

    //startActivity(i);



  }
}

MusicService.java 公共(public)类 MusicService 扩展了服务 {

@Override
    public void onCreate() {
        super.onCreate();

        String url = null;



            Intent intent = getIntent();
            String id = intent.getStringExtra("DD_URL");

            System.out.println("Rosh :" + id);
            Toast.makeText(MusicService.this, "I am in Service:"+ id,Toast.LENGTH_SHORT).show();

...

请在这方面帮助我。

提前致谢

最佳答案

您可以使用sendBroadcast(intent);它将广播 Activity A 中的 EditText。

那么您需要调用onReceive(Context context, Intent intent)在您的服务级别内。当 BroadcastReceiver 接收 Intent 广播时调用此方法,在您的情况下将从 Activity A 发送。

   private final BroadcastReceiver receiver = new BroadcastReceiver() 
   {
        @Override
        public void onReceive(Context context, Intent intent) 
        {
            // Do something
        }
   };

    //Register your receiver in onResume:

    @Override
    protected void onResume() 
    {
        super.onResume();        
        IntentFilter filter = new IntentFilter();
        filter.addAction("SOME_ACTION");
        registerReceiver(receiver, filter);
    }

   //Unregister the receiver in onPause:

    @Override
    protected void onPause() 
    {
        super.onPause();       
        unregisterReceiver(receiver);
    }

关于java - 如何从 Activity 中提取Android服务中的字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13548775/

相关文章:

java - 用空字符串初始化 String[]

java - 如何使用TextViews创建JSON? Android Studio

java - 应用发布错误,即使在删除 CALL_LOG 和 SMS 权限之后

android - 使用单击事件以编程方式在android中创建按钮

android - 如何判断Broadcast Intent的发送者

androids putExtra

java - 如何让 Spring Integration FTP 消息源直接生成 Message<String> 到 channel ,而不是创建文件

java - 在 Java 中删除大括号

android - 无法解析 com.google.firebase :firebase-core:10. 0.1

android - Android 2.x 上的 HTTP Live Streaming,是 NDK 唯一的出路