2013-09-25 10 views
21

私のアプリでonStartメソッドを設定する際に問題があります。それは、常にではないonStartCommand、私はONSTARTを必要とするこの方法は、APIレベル5で廃止されました」と言って、取り消し線を持っている。私はこの問題を解決するにはどうすればよいAndroidでは、どのようにしてonStartメソッドが廃止されるのを避けることができますか?

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

'onStartCommand()'を使用すると、 'onStart()'と同じことができます –

+0

これは機能しました!本当にありがとう!私は戻り値の後にトーストメッセージを追加しましたsuper.onStartCommand(intent、flags、startId);最初はonStartCommandが違うと思った。私はそれを前に加えて、うまくいった。 –

答えて

54

使用onStartCommand()

変更方法について詳しく知りたい場合は、下記のGoogleドキュメントを参照してください。

// 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

ありがとう! onStartCommandは正常に動作します。 –

+2

handleStartとは何ですか?私はOnStart(intent、startId)を持っています。 onStartCommand内で...それを変更する方法は? – Elizabeth

+2

これは、onStartまたはonStartCommandが呼び出されたときに実行したい操作のプレースホルダです。 – Shriken

関連する問題