I have just created simple services on clicking of buttons and start the service inside AsynTask
class still but getting message on logcat I/Choreographer: Skipped 31 frames! The application may be doing too much work on its main thread. WHY ?
Here is my code
MainActivity.java
package com.example.servicesandroidtutu;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private MyAsynTask myAsynTask;
private Button start, stop;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
start = findViewById(R.id.button);
stop = findViewById(R.id.button2);
myAsynTask = new MyAsynTask();
start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myAsynTask.execute();
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
myAsynTask.cancel(true);
}
});
}
class MyAsynTask extends AsyncTask<Void, Void, Void>{
@Override
protected void onPreExecute() {
super.onPreExecute();
startService(new Intent(getApplicationContext(), MyService.class));
}
@Override
protected Void doInBackground(Void... voids) {
return null;
}
@Override
protected void onCancelled(Void aVoid) {
super.onCancelled(aVoid);
stopService(new Intent(getApplicationContext(), MyService.class));
}
}
}
MyService.java
package com.example.servicesandroidtutu;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import androidx.annotation.Nullable;
public class MyService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.d("Service", "stopped...");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d("Service", "started...");
return super.onStartCommand(intent, flags, startId);
}
}