中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

service初級:Activity與service間的聯系、重寫ServiceConnection

發布時間:2020-10-25 18:26:21 來源:網絡 閱讀:535 作者:glblong 欄目:開發技術

MainActivity:

public class MainActivity extends Activity
{
    Mybinder mybinder =null;
    ServiceConnection mConn = new ServiceConnection()
    {
        @Override
        public void onServiceDisconnected(ComponentName name)
        {
                        
        }
                    
        @Override
        public void onServiceConnected(ComponentName name, IBinder binder)
        {
            mybinder = (Mybinder) binder;//對象binder,強轉為Mybinder類型
            Log.e("MainActivity", "mybinder.getname()");
        }
    };
                
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
                    
        final TextView textView1 = (TextView) findViewById(R.id.textView1);
        final TextView textView2 = (TextView) findViewById(R.id.textView2);
                    
                    
        findViewById(R.id.button1).setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                Intent intent = new Intent(MainActivity.this,MyService.class);
                            
                bindService(intent, mConn, BIND_AUTO_CREATE);
            }
        });
                    
        findViewById(R.id.button2).setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                unbindService(mConn);
            }
        });
                    
        findViewById(R.id.button3).setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                textView1.setText(mybinder.play());//通過mybinder調用service的方法,或者通過方法將數據傳給service
            }
        });
                    
        findViewById(R.id.button4).setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                textView2.setText(mybinder.pause());
            }
        });
    }
                
    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
                
}


MyService:

public class MyService extends Service
{
    public String play()
    {
        return "播放";
    }
    public String pause()
    {
        return "暫停";
    }
      
    class Mybinder extends Binder//Binder類繼承了接口IBinder,Mybinder繼承Binder類
    {
        //在Mybinder創建方法
        public String getname()
        {
            return "myBinder";
        }
          
        //調用外部方法
        public String play()
        {
            return MyService.this.play();
        }
        public String pause()
        {
            return MyService.this.pause();
        }
    }
      
    private IBinder binder = new Mybinder();//IBinder聲明創建一個Mybinder對象
      
    @Override
    public IBinder onBind(Intent intent)
    {
        Log.e("MyService", "onBind");
        return binder;//返回IBinder對象
    }
      
    @Override
    public void onCreate()
    {
        Log.e("MyService", "onBind");
        super.onCreate();
    }
      
    @Override
    public boolean onUnbind(Intent intent)
    {
        Log.e("MyService", "onUnbind");
        return super.onUnbind(intent);
    }
      
    @Override
    public void onDestroy()
    {
        Log.e("MyService", "onDestroy");
        super.onDestroy();
    }
      
}



  1. service屬性

android:enabled

這個屬性用于指示該服務是否能夠被實例化。如果設置為true,則能夠被實例化,否則不能被實例化。默認值是true。

<application>元素有它自己的enabled屬性,它的這個屬性適用于應用中所有的組件,包括service組件。對于被啟用的服務,<application>和<service>元素的enabled屬性都必須是true(默認值都是true)。如果有一個元素的enabled屬性被設置為false,該服務就會被禁用,而不能被實例化。

android:exported

這個屬性用于指示該服務是否能夠被其他應用程序組件調用或跟它交互。如果設置為true,則能夠被調用或交互,否則不能。設置為false時,只有同一個應用程序的組件或帶有相同用戶ID的應用程序才能啟動或綁定該服務。

它的默認值依賴與該服務所包含的過濾器。沒有過濾器則意味著該服務只能通過指定明確的類名來調用,這樣就是說該服務只能在應用程序的內部使用(因為其他外部使用者不會知道該服務的類名),因此這種情況下,這個屬性的默認值是false。另一方面,如果至少包含了一個過濾器,則意味著該服務可以給外部的其他應用提供服務,因此默認值是true。

這個屬性不是限制把服務暴露給其他應用程序的唯一方法。還可以使用權限來限制能夠跟該服務交互的外部實體。









向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

克什克腾旗| 洱源县| 北流市| 平阳县| 嘉禾县| 栾城县| 英吉沙县| 广东省| 曲沃县| 永靖县| 洛宁县| 华亭县| 七台河市| 广昌县| 邵东县| 咸阳市| 镇雄县| 馆陶县| 德格县| 桦甸市| 莲花县| 广水市| 汝南县| 洞头县| 偃师市| 崇信县| 涞源县| 泾阳县| 无锡市| 宁城县| 洛宁县| 长岛县| 上饶市| 黄平县| 衢州市| 保亭| 宜州市| 定陶县| 梁河县| 晋城| 定西市|