Java 启动服务时如何运行MainActivity?
我是Java/Android Studio的新手(刚刚在这里创建了一个帐户),所以如果我说/写错了什么,请提前道歉 所以我有以下问题,我有这个MainActivity.java(只是下面代码的一部分): 我有一个MyService.java: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
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);
}