Android 为什么getIntent()错误在我的代码中出现红线?

Android 为什么getIntent()错误在我的代码中出现红线?,android,parcelable,Android,Parcelable,我想将包裹数据从MainActivity发送到LocationService。但当我想检索LocationService上的数据并键入此代码行时。但最终以错误红线结束 我已经试过了,但是我想在另一个方法上使用这个对象,并且这个对象变为null Intent intent = getIntent(); 我希望你们能帮忙,也许还有其他人的建议。谢谢您因为您试图从服务调用getIntent,所以它不是服务类的方法,您需要在调用它之前有一个Activity类的引用 activity.getInten

我想将包裹数据从MainActivity发送到LocationService。但当我想检索LocationService上的数据并键入此代码行时。但最终以错误红线结束

我已经试过了,但是我想在另一个方法上使用这个对象,并且这个对象变为null

Intent intent = getIntent();


我希望你们能帮忙,也许还有其他人的建议。谢谢您

因为您试图从服务调用getIntent,所以它不是服务类的方法,您需要在调用它之前有一个Activity类的引用

activity.getIntent()
编辑:


现在要将数据从活动发送到服务,您可以实现一个接口

 public interface MyIntentListener {
    public void call();
 }
声明接口

 public interface MyIntentListener {
    public void call();
 }
现在在您的服务中实现此接口,如

 class yourService extends ... implements MyIntentListener {

     // other stuff
     @override
     public void call() {
     }
 }
现在,在初始化服务的活动中,必须有它的引用,以便可以调用活动中的任何位置

 service.call()

您还可以使用
getIntent().getParcelableExtra(额外信息)

您不需要在其中创建intent变量“getIntent()”。直接获取即可。

您可以使用IntentService进行此类工作:

public class LocationService extends IntentService {
    public LocationService() {
        super("LocationService");
    }

    @Override
    protected void onHandleIntent(@Nullable Intent intent) {

    }

    @Override
    public int onStartCommand(@Nullable Intent intent, int flags, int startId) {
        //Get data from intent here.
    }
}
要启动并使用IntentService,请执行以下操作:

Intent serviceIntent = new Intent(context, LocationService.class);
startService(serviceIntent);

来自活动。您可以将任何类型的数据传递到serviceIntent对象。

您可以使用intent传递数据

Intent serviceIntent= new Intent(Activity_Namethis,Service_Name.class);
serviceIntent.intent.putExtra(EXTRA_KEY, YOUR_OBJECT);
startService(serviceIntent);
从服务中检索数据

@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
   YOUR_CLASS _yourClassObject = intent.getParcelableExtra(EXTRA_KEY);

   return "RETURN_FLAG";
}

您还可以捆绑所有数据,并添加以下内容:t
在此处输入代码
o您的意图

如果此方法正在使用,则使用intent intent=getApplicationContext().getIntent();可能是因为
#getIntent()
活动的方法。这不是一个
活动
课程。我已经试过了。它不太管用@NickBapuso,我如何将数据从活动发送到服务@若要将数据从“活动”发送到“服务”,您可以实现该接口。让我修改我的答案。您可以在call()方法中传递Intent,我忘了根据您的要求添加它。