91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

天台县| 堆龙德庆县| 正阳县| 保亭| 合江县| 黄梅县| 井陉县| 平昌县| 黑龙江省| 康定县| 怀安县| 延津县| 左云县| 长葛市| 巴中市| 子洲县| 青铜峡市| 日照市| 漯河市| 德昌县| 施甸县| 永胜县| 仁布县| 庆阳市| 台东市| 米易县| 西华县| 乌兰察布市| 恩施市| 奈曼旗| 托克逊县| 白河县| 祁门县| 洪泽县| 台中市| 普格县| 厦门市| 曲麻莱县| 常德市| 宣武区| 上饶县|