0

Intent サービスを使用して BGM を実行しようとしています。OnhandleIntent は呼び出されません。ブレークポイントとコード android.os.Debug.waitForDebugger(); を追加してみました。しかし、OnHandleIntent に入ることができません。サービスをマニフェスト ( android:name=".BackgroundMusic"/>) に追加しましたが、ここで何が欠けているのかわかりません。どんな助けでも大歓迎です。

public class BackgroundMusic extends IntentService
 {
   MediaPlayer mp;
   Uri uri;

public BackgroundMusic()
{
    super("BackgroundMusic");
     setIntentRedelivery(true);
}

@Override
protected void onHandleIntent(Intent intent)
{   
    try     
    {   
         android.os.Debug.waitForDebugger();
        int id=intent.getExtras().getInt("musicid");            
        mp=MediaPlayer.create(this,id);
        mp.prepare();
        mp.start();     
    }   
    catch (Exception e)
    {
        Log.e("Error",e.getMessage());
    }       
}

@Override
public void onCreate()
{
    super.onCreate();
}

@Override
public void onDestroy() 
{
    super.onDestroy();
    if (mp != null) 
        mp.release();
        mp=null;
}

}

活動コード

    @Override
public void onCreate(Bundle savedInstanceState)
{
    try
    {
            super.onCreate(savedInstanceState);
             LMain=new LinearLayout(this);  
                     LMain.setOrientation(LinearLayout.HORIZONTAL);
           LayoutParams pFill=new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT);
              LMain.setLayoutParams(pFill);
            imageview=new ImageView(this);          
                            imageview.setLayoutParams(pFill);
            setContentView(LMain);
                
            Intent IntImage=getIntent();
            int id=IntImage.getExtras().getInt("id");
                mresourceid=new ImageAdapter(this).music[id];       
            imageview.setImageResource(new ImageAdapter(this).images[id]);
            Intent IntMusic=new Intent(ImageDetail.this,BackgroundMusic.class);
            IntMusic.putExtra("musicid", mresourceid);
            startService(IntMusic);     
    }
    catch(Exception e)
    {
        Log.e("error",e.getMessage());
    }
    
}
4

1 に答える 1

1

できます。以前、OSバージョン2.3.4のデバイスでコードを実行していました。インテントサービスはAPIレベル3からサポートされています。誰かが私と同じことをしている場合に備えて更新したかった

于 2012-09-07T17:16:53.307 に答える