I am having a problem with setting the onStart method in my app. It always has a strikethrough, saying "This method was deprecated in API level 5. I need onStart, not onStartCommand.
How can I resolve this?
MyNotificationService.java
import android.app.Service; import android.content.Intent; import android.os.IBinder; import android.widget.Toast; public class MyNotificationService extends Service { @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); Toast.makeText(this, "OnCreate()", Toast.LENGTH_SHORT).show(); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Toast.makeText(this, "OnDestroy()", Toast.LENGTH_SHORT).show(); } @Override @Deprecated public void onStart(Intent intent, int startId) { // TODO Auto-generated method stub super.onStart(intent, startId); } }
Reminder_2.java
import android.media.MediaPlayer; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.Window; import android.widget.DatePicker; import android.widget.ImageButton; public class Reminder_2 extends Activity { String message; DatePicker datepicker; @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.activity_reminder_2); datepicker=(DatePicker)findViewById(R.id.datePicker1); Home(); Next(); Save(); } private void Next() { final MediaPlayer button_tone = MediaPlayer.create(this, R.raw.button_sound); ImageButton Button = (ImageButton) findViewById(R.id.imageButton1); View.OnClickListener myListener = new View.OnClickListener() { @Override public void onClick(View v) { button_tone.start(); finish(); } }; Button.setOnClickListener(myListener); } private void Save() { final MediaPlayer button_tone = MediaPlayer.create(this, R.raw.button_sound); ImageButton Button = (ImageButton) findViewById(R.id.imageButton3); View.OnClickListener myListener = new View.OnClickListener() { @Override public void onClick(View v) { button_tone.start(); Intent intent = new Intent(); intent.setClass(getApplicationContext(), MyNotificationService.class); startService(intent); } }; Button.setOnClickListener(myListener); } private void Home() { final MediaPlayer button_tone = MediaPlayer.create(this, R.raw.button_sound); ImageButton Button = (ImageButton) findViewById(R.id.imageButton2); View.OnClickListener myListener = new View.OnClickListener() { @Override public void onClick(View v) { button_tone.start(); Intent intent = new Intent(getApplicationContext(), MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); } }; Button.setOnClickListener(myListener); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.reminder, menu); return true; } }
The onStart() call makes the activity visible to the user, as the app prepares for the activity to enter the foreground and become interactive. For example, this method is where the app initializes the code that maintains the UI.
onCreate() method gets called when activity created and onStart() method called when activity comes from onPause() or onResume() . onCreate() , will be called in two scenarios , one when activity is first created, and second when activity goes through configuration changes.
As onCreate() of an Activity is called only once, this is the point where most initialization should go: calling setContentView(int) to inflate the activity's UI, using findViewById to programmatically interact with widgets in the UI, calling managedQuery(android.
When a service is started, it has a lifecycle that's independent of the component that started it. The service can run in the background indefinitely, even if the component that started it is destroyed.
You can use like this with onStartCommand().
package htin.linnzaw.service; import android.app.Service; import android.content.Intent; import android.media.MediaPlayer; import android.os.IBinder; import android.widget.Toast; public class MyService extends Service { private MediaPlayer mediaplayer; public MyService() { } @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. throw new UnsupportedOperationException("Not yet implemented"); } @Override public void onCreate() { Toast.makeText(this, "Service created", Toast.LENGTH_SHORT).show(); mediaplayer = MediaPlayer.create(this, R.raw.eventually); mediaplayer.setLooping(false); } @Override public int onStartCommand(Intent intent, int flags, int startid) { Toast.makeText(this, "Service Started", Toast.LENGTH_SHORT).show(); mediaplayer.start(); return startid; } @Override public void onDestroy() { Toast.makeText(this, "Service stopped", Toast.LENGTH_SHORT).show(); mediaplayer.stop(); } }
Use onStartCommand()
.
It you want to know more about how they change it, refer to google documentation like below.
// This is the old onStart method that will be called on the pre-2.0 // platform. On 2.0 or later we override onStartCommand() so this // method will not be called. @Override public void onStart(Intent intent, int startId) { handleStart(intent, startId); } @Override public int onStartCommand(Intent intent, int flags, int startId) { handleStart(intent, startId); return START_NOT_STICKY; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With