簡體   English   中英

如何從MainActivity到服務引用resId

[英]How to reference resId's from MainActivity to Service

我必須將我的MediaPlayer移出MainActivity並移入服務。

我的代碼當前具有MainActivity中托管的所有按鈕,但是當按下按鈕時,會為其分配一個ID(resId),這樣我就可以使用常規MediaPlayer代碼播放任何按下的按鈕。

例如:

public void onClick(View v) {
    int resId;
    switch (v.getId()) {
    case R.id.button_1:
        resId = R.raw.birdsong;
        break;
    case R.id.button_2:
        resId = R.raw.brown_noise;
        break;
    case R.id.button_3:
        resId = R.raw.car_journey;
        break;
    case R.id.button_4:
        resId = R.raw.crackling_fire;
        break;
    case R.id.button_5:
        resId = R.raw.electrifying_thunderstorms;
        break;
    case R.id.button_6:
        resId = R.raw.fan;
        break;
    case R.id.button_7:
        resId = R.raw.jungle_river;
        break;
    case R.id.button_8:
        resId = R.raw.pig_frogs;
        break;
    case R.id.button_9:
        resId = R.raw.pink_noise;
        break;
    case R.id.button_10:
        resId = R.raw.predawn;
        break;
    case R.id.button_11:
        resId = R.raw.rain;
        break;
    case R.id.button_12:
        resId = R.raw.shower;
        break;
    case R.id.button_13:
        resId = R.raw.snoring;
        break;
    case R.id.button_14:
        resId = R.raw.whale_song;
        break;
    case R.id.button_15:
        resId = R.raw.white_noise;
        break;
    default:
        resId = R.raw.birdsong;
        break;
    }
    // Release any resources from previous MediaPlayer
    if (mp != null) {
        mp.release();
    }
    // Create a new MediaPlayer to play this sound
    mp = MediaPlayer.create(this, resId);
    mp.setLooping(true);    
    mp.start();

我如何將代碼移至服務,但仍在MainActivity上保留按鈕? 該服務將無法識別與該按鈕關聯的resId,因為所有代碼都位於MainActivity中,因此不會播放正確的聲音。

您可以編寫一個ContentProvider並將自己的自定義名稱/標識符發送到該服務,以使其通過ContentProvider使用提供的名稱訪問活動應用程序的資源。 在這里閱讀它們: http : //developer.android.com/guide/topics/providers/content-providers.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM