Android 如何在服务中传递价值?

Android 如何在服务中传递价值?,android,service,android-activity,android-intent,Android,Service,Android Activity,Android Intent,我正在制作一个媒体播放器,可以在后台运行。我必须在此服务中发送一个字符串uri。 但是我无法通过bundle从活动发送uri值。服务类不支持getIntent()和show error。 如何通过活动在服务中发送uri。 请帮忙 package com.abc.activity; import android.app.Service; import android.content.Intent; import android.media.MediaPlayer; import android.

我正在制作一个媒体播放器,可以在后台运行。我必须在此服务中发送一个字符串uri。 但是我无法通过bundle从活动发送uri值。服务类不支持getIntent()和show error。 如何通过活动在服务中发送uri。 请帮忙

package com.abc.activity;

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;

public class MyService extends Service {
    private static final String TAG = "MyService";
    MediaPlayer player;
    String uri,url;
    Bundle b;
    AudioPlayer2 ap;


    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

    @Override
    public void onCreate() {
        Log.d(TAG, "onCreate");

        Uri path=Uri.parse("/mnt/sdcard/download/abc.mp3");
        player = MediaPlayer.create(this,path );
        player.setLooping(false); // Set looping
    }

    @Override
    public void onDestroy() {
        Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onDestroy");
        player.stop();
    }

    @Override
    public void onStart(Intent intent, int startid) {
        Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show();
        Log.d(TAG, "onStart");
        //Bundle extras = getIntent().getExtras();
        player.start();
    }
    public void getValue(String uri)
    {
        url=uri;
    }
}

这是我在本例中使用的静态url。请建议如何从我的活动类中获取uri值。捆绑包在此类中不起作用

您应该使用IntentService


实现
onHandleIntent(Intent-Intent)
,每次使用
startService(Intent)
启动服务时都会调用它。您可以通过此意图将数据传递给服务。

如果您试图将字符串或字符串数组从一个活动发送到另一个活动,则可以在意图中完成此操作

在ClassA中:

Intent Intent=新的Intent(本,B类)
字符串[]myStrings=新字符串[]{“test”,“test2”}
intent.putExtra(“字符串”,myStrings)
星触觉(意向)

B类:

public void onCreate(){
Intent=getIntent();
String[]myStrings=intent.getStringArrayExtra(“字符串”);

}

我想将一个活动中的字符串发送到我的服务类。这不是活动。是的,您可以从一个活动访问字符串到任何其他活动(它可能是服务类或其他活动)。