2013-09-25 9 views
21

मुझे अपने ऐप में ऑनस्टार्ट विधि सेट करने में कोई समस्या है। यह हमेशा एक स्ट्राइकथ्रू कह "यह पद्धति एपीआई स्तर 5 में पदावनत किया गया था मैं onStart की जरूरत है, onStartCommand नहीं है।एंड्रॉइड में, मैं ऑनस्टार्ट विधि को बहिष्कृत होने से कैसे बच सकता हूं?

मैं इस हल कर सकते हैं कैसे?

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। जावा

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

'ऑनस्टार्ट कमांड()' का उपयोग करें, यह वही करेगा जो ऑनस्टार्ट() ' –

+0

यह काम करता है! बहुत बहुत धन्यवाद! मैंने super.onStartCommand (इरादा, झंडे, startId) वापसी के बाद एक टोस्ट संदेश जोड़ा; तो पहले, मैंने सोचा था कि स्टार्ट कमांड अलग था। मैंने इसे पहले जोड़ा, और यह अच्छी तरह से काम किया। –

उत्तर

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

हैंडलस्टार्ट क्या है? मेरे पास ऑनस्टार्ट है (इरादा, startId); ऑनस्टार्ट कमांड के अंदर ... इसे कैसे संशोधित करें? – Elizabeth

+2

यह स्टार्ट या ऑनस्टार्ट कमांड कहलाता है जब भी आप जो भी करना चाहते हैं उसके लिए प्लेसहोल्डर है। – Shriken

संबंधित मुद्दे