2013-09-25 11 views
21

Uygulamamda onStart yöntemini ayarlamakta sorun yaşıyorum. Her zaman değil onStartCommand, ben ONSTART ihtiyacım Bu yöntem API düzeyinde 5. kullanımdan kaldırıldı" diyerek çizilidir. Bunu çözmek nasılAndroid'de, onStart yönteminin kullanımdan kaldırılmasını nasıl önleyebilirim?

?

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; 
    } 

} 
+1

Kullanım 'onStartCommand()', bu 'onStart()' can –

+0

İşe yaradı ne olursa olsun aynı yapacağız! Çok teşekkürler! Super.onStartCommand (niyet, bayraklar, startId) döndükten sonra bir tost mesajı ekledim; İlk başta ,StartCommand'ın farklı olduğunu düşündüm. Bundan önce ekledim ve iyi çalıştı. –

cevap

54

kullanın onStartCommand().

Nasıl değiştirdikleri hakkında daha fazla bilgi edinmek isterseniz, aşağıdaki gibi Google dokümanlarına bakın.

// 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; 
} 
+0

Teşekkürler! onStartCommand şimdi iyi çalışıyor. –

+2

handleStart nedir? OnStart (niyetim, startId) var; onStartCommand içinde ... nasıl değiştirilir? – Elizabeth

+2

OnStart veya onStartCommand çağrıldığında yapmak istediğiniz her şey için bir yer tutucu. – Shriken

İlgili konular