Я довольно новичок в Java/Android Studio (и только что создал учетную запись здесь), поэтому извиняюсь заранее, если я говорю/пишу что-то неправильно.Как запустить MainActivity при запуске службы?
Так что я следующая проблема, у меня есть эта MainActivity.java (только часть кода ниже):
public class MainActivity extends Activity implements LocationListener{
public static final MediaType FORM_DATA_TYPE = MediaType.parse("application/x-www-form-urlencoded; charset=utf-8");
//URL derived from form URL
public static final String URL = "...";
//input element ids found from the live form page
public static final String LAT="entry_1903202747";
public static final String LONG="entry_1549783406";
public static final String MOD="entry_1161588883";
public static final String MAN="entry_852582911";
public static final String IMEI="entry_738564261";
public static final String EXIP="entry_1256979126";
public static final String ACC="entry_1601482207";
private Context context;
LocationManager locationmanager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout);
context=this;
Button button3 = (Button)findViewById(R.id.button3);
final TextView textView3 = (TextView) findViewById(R.id.textView3);
final TextView textView5 = (TextView) findViewById(R.id.textView5);
final TextView textView12 = (TextView) findViewById(R.id.textView12);
final TextView textView13 = (TextView) findViewById(R.id.textView13);
final TextView textView14 = (TextView) findViewById(R.id.textView14);
final TextView textView7 = (TextView) findViewById(R.id.textView7);
final TextView textView15 = (TextView) findViewById(R.id.textView15);
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());
}
});
и у меня есть 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;
}
}
* EDIT
Текущее приложение отправляет данные в форму Google при нажатии кнопки «Отправить», но я хочу, чтобы приложение отправляло данные, когда оно работает в фоновом режиме, без нажатия кнопки «Отправить» на.
Поэтому, когда я запускаю действие (только один раз на кнопку «запускать активность»), он должен начать отправку данных в форму. Надеюсь, это прояснит ситуацию, если нет, я попытаюсь объяснить это еще дальше.
Я хочу что-то вроде этого (MyService.java):
@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;
}
Основной целью является выполнение "postDataTask" (от MainAcitivy) в MyService
Пожалуйста, объясните, что означает «запустить код внутри MainActivity». – CommonsWare
Я вставил часть своего «кода» в MainActivity. Поэтому я хочу, чтобы весь «код» запускался при запуске службы. –
Я думаю, это зависит от того, что делает «код». Если он собирает некоторые данные из формы, вы можете сохранить эти данные где-нибудь, когда активность заходит на фон (статическая переменная использования событий), и служба может прочитать эти данные позже. Если «код» выполняет некоторую функцию полезности, вы можете перенести их в класс Utils. – duynt