Java 启动服务时如何运行MainActivity?

Java 启动服务时如何运行MainActivity?,java,android,android-studio,service,Java,Android,Android Studio,Service,我是Java/Android Studio的新手(刚刚在这里创建了一个帐户),所以如果我说/写错了什么,请提前道歉 所以我有以下问题,我有这个MainActivity.java(只是下面代码的一部分): 我有一个MyService.java: public class MyService extends Service { @Override public int onStartCommand(Intent intent, int flags, int startId) { Toast

我是Java/Android Studio的新手(刚刚在这里创建了一个帐户),所以如果我说/写错了什么,请提前道歉

所以我有以下问题,我有这个MainActivity.java(只是下面代码的一部分):

我有一个MyService.java:

public class MyService extends Service
{

@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
    Toast.makeText(this, "Service started...", Toast.LENGTH_LONG).show();
    return START_STICKY;
}

@Override
public void onDestroy()
{
    super.onDestroy();
    Toast.makeText(this, "Service destroyed...", Toast.LENGTH_LONG).show();
}
@Override
public IBinder onBind(Intent intent) {
    return null;
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
    Toast.makeText(this, "Service started...", Toast.LENGTH_LONG).show();

    button3.setOnClickListener(new View.OnClickListener(){

        @Override
                public void onClick(View v) {
                PostDataTask postDataTask = new PostDataTask();

            postDataTask.execute(URL,textView3.getText().toString(),textView5.getText().toString(),textView12.getText().toString(),textView13.getText().toString(),textView14.getText().toString(),textView7.getText().toString(),textView15.getText().toString());

        }
    });

    return START_STICKY;
}
*编辑

当前应用程序在按下“提交”按钮时将数据发送到Google表单,但我希望应用程序在后台运行时发送数据,而不必按下“提交”按钮

因此,当我启动活动时(只需按一次“启动活动”按钮),它需要开始向表单发送数据。希望这能澄清问题,如果不能,我会进一步解释

我想要这样的东西(MyService.java):


主要目标是在MyService中执行“postDataTask”(来自MainActivy)

我可能会扩展intentService,这样它就可以在另一个线程上发送数据,这样就不会降低UI的速度。但是如果你需要这项服务,那么你的方法还可以,但我不清楚你的目标是什么。不管怎样,你确切的问题是

启动服务时如何运行MainActivity

。服务是一种上下文类型,因此您可以从中启动活动。这样做:

@Override 
public int onStartCommand(Intent intent, int flags, int startId)
{ 
     Intent intent = new Intent(this, DisplayMessageActivity.class);
    startActivity(intent);

}

请详细解释“在MainActivity中运行代码”的含义。我在MainActivity中粘贴了一部分“代码”。因此,我希望在启动服务时运行整个“代码”。我认为这取决于“代码”的作用。如果它从表单中收集一些数据,那么当活动进入后台时,您可以将这些数据保存到某个位置(事件使用静态变量),服务可以稍后读取这些数据。如果“代码”具有一些实用功能,您可以将它们移动到Utils类。MainActivity中的全部代码包括:获取电话位置/IMEI/etc.->插入谷歌表单-->谷歌电子表格中的结果;首先,为什么要将该代码放入
MainActivity
?创建一个
IntentService
并将该代码放入
onHandleIntent()
中。我不知道怎么做,但你设法理解了我想要什么;D谢谢你!好消息。如果您能够接受答案,请这样做,以便其他人知道其已解决并停止努力。所有这些仍然是新的,但感谢您提供的信息!(接受答案)
@Override 
public int onStartCommand(Intent intent, int flags, int startId)
{ 
     Intent intent = new Intent(this, DisplayMessageActivity.class);
    startActivity(intent);

}