解决方案 »

  1.   

    intent.putExtra("url", "你的url");//要传递的url
    String url=getIntent().getStringExtra("url");//获取传递过来的url
      

  2.   

    onStartCommand 第一个参数就是接收的 intent,对于数量不多的参数,可以用 putExtra 和系列的 getXXXXExtra。
      

  3.   

    上面两位的方法我都使用过了,可能是自己的原因,传过去的参数一直是null,后来我采用了Bundle的方法终于搞定了,下面我贴贴自己的代码吧。
      

  4.   

    package com.B_project.picture_distinguish;
    import java.io.File;
    import java.text.SimpleDateFormat;
    import java.util.Date;import android.app.Activity;
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.drawable.BitmapDrawable;
    import android.graphics.drawable.Drawable;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.provider.MediaStore;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ImageButton;public class MainActivity extends Activity implements OnClickListener {
    private ImageButton img_btn;
    private Button btn,dis_btn;
    private static final int PHOTO_REQUEST_TAKEPHOTO =1;//拍照
    private static final int PHOTO_REQUEST_GALLERY =2;//从相册中选择
    private static final int PHOTO_REQUEST_CUT =3;//结果
        //创建一个以当前时间为名称的文件
    File tempFile = new File(Environment.getExternalStorageDirectory(),getPhotoFileName());
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    init();
    }

    //初始化控件
    private void init(){
    img_btn = (ImageButton)findViewById(R.id.img_btn);
    btn = (Button)findViewById(R.id.btn);
    dis_btn = (Button)findViewById(R.id.dis_btn);
    //为ImageButton和Button添加监听事件
    img_btn.setOnClickListener(this);
    btn.setOnClickListener(this);
    dis_btn.setOnClickListener(this);
    } @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId()){
    case R.id.img_btn:
    showDialog();
    break;
    case R.id.btn:
    showDialog();
    break;
    }

    }

    //提示对话框方法
    private void showDialog() {
    new AlertDialog.Builder(this)
    .setTitle("头像设置")
    .setPositiveButton("拍照", new DialogInterface.OnClickListener() { @Override
    public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub
    dialog.dismiss();
    // 调用系统的拍照功能
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    // 指定调用相机拍照后照片的储存路径
    intent.putExtra(MediaStore.EXTRA_OUTPUT,
    Uri.fromFile(tempFile));
    startActivityForResult(intent, PHOTO_REQUEST_TAKEPHOTO);
    }
    })
    .setNegativeButton("相册", new DialogInterface.OnClickListener() { @Override
    public void onClick(DialogInterface dialog, int which) {
    // TODO Auto-generated method stub
    dialog.dismiss();
    Intent intent = new Intent(Intent.ACTION_PICK, null);
    intent.setDataAndType(
    MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
    "image/*");
    startActivityForResult(intent, PHOTO_REQUEST_GALLERY);
    }
    }).show();
    }

    @Override
    protected void onActivityResult(int requestCode,int resultCode,Intent data){
    // TODO Auto-generated method stub

    switch(requestCode){
    case PHOTO_REQUEST_TAKEPHOTO://当选择拍照时调用
    startPhotoZoom(Uri.fromFile(tempFile));
    break;
    case PHOTO_REQUEST_GALLERY://当选择从本地获取图片时
    //做非空判断,当我们觉得不满意想重新剪裁的时候便不会报异常,下同
    if (data !=null)
    startPhotoZoom(data.getData());
    break;
    }
    super.onActivityResult(requestCode, resultCode, data);
    }

    private void startPhotoZoom(Uri uri){
    Bundle mbundle = new Bundle();
    mbundle.putString("URI", uri.toString());
    Intent intent = new Intent(this,MyService.class);
    intent.setAction("com.B_project.service.BIND_SERVICE");
    intent.putExtras(mbundle);
    startService(intent);
    System.out.println("**************"+uri);
    }
    //将进行剪裁后的图片显示到UI界面上
    private void setPicToView(Intent picdata) {
    Bundle bundle = picdata.getExtras();
    if (bundle != null) {
    Bitmap photo = bundle.getParcelable("data");
    Drawable drawable = new BitmapDrawable(photo);
    img_btn.setBackgroundDrawable(drawable);
    }
    } // 使用系统当前日期加以调整作为照片的名称
    private String getPhotoFileName() {
    Date date = new Date(System.currentTimeMillis());
    SimpleDateFormat dateFormat = new SimpleDateFormat("'IMG'_yyyyMMdd_HHmmss");
    return dateFormat.format(date) + ".jpg";
    }

     @Override
     protected void onDestroy() {
       MainActivity.this.stopService(new Intent(MainActivity.this,MyService.class));
      super.onDestroy();
     }
    }
      

  5.   

    package com.B_project.picture_distinguish;import java.net.URI;import android.app.Service;
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.IBinder;
    import android.provider.MediaStore;public class MyService extends Service{
    @Override 
    public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub

    System.out.println("Service is Binded");
    return null;
    } public int onStartCommand(Intent intent,int flag,int startId){
    super.onStartCommand(intent, flag, startId);
    Bundle bundle = (Bundle)intent.getExtras();
    String uri=bundle.getString("URI");
      System.out.println("sevice---------------"+uri);
    return startId;
    }

    public void onCreate(Bundle savedInstanceState){
    super.onCreate();
    System.out.println("Service is Created");
    }
    }