<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-348  評論-598  文章-0  trackbacks-0

    程序A的Receiver:

    receiver = new BroadcastReceiver() {

                @Override
                
    public void onReceive(Context ctx, Intent intent) {
                    Log.i(
    "TestActivity""===============Broadcast Received:" + intent.getAction());
                    
    if (intent.getAction().equals(RESPONSE_ACTION)) {
                        Uri uri 
    = intent.getData();
                        String location 
    = "";
                        
    if (uri != null{
                            Log.i(
    "TestActivity",
                                    
    "=======================parameter location:"
                                            
    + uri.getQueryParameter("location"));
                            Log.i(
    "TestActivity""======================= host:"
                                    
    + uri.getHost());
                            Log.i(
    "TestActivity""======================= path:"
                                    
    + uri.getPath());
                            location 
    = uri.getQueryParameter("location");
                            FileInputStream fis 
    = null;
                            ByteArrayOutputStream bos 
    = null;
                            File file 
    = new File(location);
                            
    try {
                                fis 
    = new FileInputStream(file);
                                bos 
    = new ByteArrayOutputStream();
                                
    byte[] data = new byte[512];
                                
    int count = -1;
                                
    while ((count = fis.read(data)) != -1{
                                    bos.write(data, 
    0, count);
                                }

                                String xml 
    = new String(bos.toByteArray());
                                Log.i(
    "TestActivity""xml1=" + xml);
                                Toast.makeText(TestActivity.
    this, xml, Toast.LENGTH_SHORT).show();
                            }
     catch (Exception ex) {
                                ex.printStackTrace();
                            }
     finally {
                                
    if (fis != null)
                                    
    try {
                                        fis.close();
                                    }
     catch (IOException e) {
                                        
    // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }

                                
    if (bos != null)
                                    
    try {
                                        bos.close();
                                    }
     catch (IOException e) {
                                        
    // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }

                            }

                        }

                    }

                }


            }
    ;
            IntentFilter filter 
    = new IntentFilter();
            filter.addAction(RESPONSE_ACTION);
            filter.addCategory(Intent.CATEGORY_DEFAULT);
            filter.addDataScheme(
    "http");
            registerReceiver(receiver, filter);
    程序A的發送BC:
            btn.setOnClickListener(new OnClickListener() {

                @Override
                
    public void onClick(View arg0) {
                    
    // TODO Auto-generated method stub
                    Uri uri = Uri.parse("http://www.xx.com/getDetails?id=123");
                    Intent in 
    = new Intent();
                    in.setAction(REQUEST_ACTION);
                    in.addCategory(Intent.CATEGORY_DEFAULT);
                    in.setData(uri);
                    TestActivity.
    this.sendBroadcast(in);
                }

            }
    );


    程序B的Receiver:
    @Override
        
    public void onReceive(Context context, Intent intent) {
            
    if(intent != null)
            
    {
                Uri uri 
    = intent.getData();
                
    if(uri != null)
                
    {
                    Log.i(
    "BGServiceReceiver""=======================" + uri.getQueryParameter("id"));
                    intent.setClassName(
    "com.backgroundservice",
                    
    "com.backgroundservice.TestBackgroundService");
                    context.startService(intent);
                }

                    
            }

    //        try {
    //            Thread.sleep(5000);
    //        } catch (InterruptedException e) {
    //            // TODO Auto-generated catch block
    //            e.printStackTrace();
    //        }
        

        }
    配置:
            <receiver android:name="ServiceReceiver">
                
    <intent-filter>
                    
    <action android:name="android.intent.action.STORE_REQUEST"></action>
                    
    <category android:name="android.intent.category.DEFAULT"></category>
                    
    <data android:scheme="http"></data>
                
    </intent-filter>
            
    </receiver>

    程序B的發送BC:
            Intent in = new Intent();
            in.setAction(RESPONSE_ACTION);
            in.addCategory(Intent.CATEGORY_DEFAULT);
            in.setData(Uri.parse(
    "http://www.xx.com/setList?location=/sdcard/xx.xml"));
            
    this.sendBroadcast(in);

    如果想讓目標Activity或者Service接收到相應的Broadcast,就需要完全匹配目標Activity或者Service的IntentFilter,否則目標Filter無法接收到相應的Broadcast。注意:IntentFilter設置的時候都要默認帶上CATEGORY_DEFAULT,否則可能會造成潛在問題。
    文檔中的說明如下:
    In principle, therefore, an Intent object with no categories should always pass this test, regardless of what's in the filter. That's mostly true. However, with one exception, Android treats all implicit intents passed to startActivity() as if they contained at least one category: "android.intent.category.DEFAULT" (the CATEGORY_DEFAULT constant). Therefore, activities that are willing to receive implicit intents must include "android.intent.category.DEFAULT" in their intent filters.

    ---------------------------------------------------------
    專注移動開發

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2010-01-31 19:48 TiGERTiAN 閱讀(4933) 評論(0)  編輯  收藏 所屬分類: Java 、Android
    主站蜘蛛池模板: 亚洲午夜福利在线视频| 亚洲天堂中文字幕在线观看| 亚洲中文字幕在线第六区| 亚洲首页在线观看| 美女被羞羞网站免费下载| 免费国产黄网站在线观看可以下载 | www永久免费视频| 99久在线国内在线播放免费观看| 77777亚洲午夜久久多人| 久久久久久av无码免费看大片| 最近最好的中文字幕2019免费| 久久久久国产成人精品亚洲午夜 | avtt亚洲天堂| 2017亚洲男人天堂一| 中文字幕免费在线看线人动作大片 | 亚洲av永久中文无码精品| 日韩精品无码免费一区二区三区| 久久久久久久久亚洲| 免费在线人人电影网| 性盈盈影院免费视频观看在线一区| 亚洲国产另类久久久精品小说| 国产精品亚洲AV三区| 久久不见久久见免费影院| 日本久久久久亚洲中字幕| 中文字幕视频免费在线观看| 亚洲啪啪综合AV一区| 国产精品免费一区二区三区| 国产一级淫片a免费播放口之| 亚洲免费在线观看视频| 久久精品乱子伦免费| 亚洲无码在线播放| 亚洲视频免费在线播放| 日韩亚洲一区二区三区| 巨胸喷奶水视频www免费视频| 亚洲av无码成h人动漫无遮挡| 91av免费在线视频| 久久精品国产亚洲AV无码娇色| 成人性生活免费视频| 国产免费人成视频在线播放播| 久久丫精品国产亚洲av| 日韩电影免费在线|