<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 閱讀(4921) 評論(0)  編輯  收藏 所屬分類: JavaAndroid
    主站蜘蛛池模板: 91福利免费视频| 伊人久久亚洲综合| 久久久免费的精品| 国产亚洲精品第一综合| 亚洲天堂福利视频| 国产亚洲成av片在线观看| 尤物永久免费AV无码网站| 亚洲一级毛片免费观看| 免费在线黄色电影| 一级毛片成人免费看a| 亚洲依依成人亚洲社区| 亚洲美女中文字幕| 亚洲成人午夜在线| 亚洲精品无码专区久久久 | 亚洲不卡av不卡一区二区| 四虎影视免费永久在线观看| 色播精品免费小视频| 一区二区免费视频| 久久国产精品成人免费| 久久国产精品免费| 日本激情猛烈在线看免费观看| 亚洲av永久无码天堂网| 亚洲色www永久网站| 亚洲一区二区三区高清不卡 | 久久国产精品免费网站| 91精品全国免费观看青青| 一个人看的www免费高清| 免费人人潮人人爽一区二区 | 国产精品亚洲精品日韩已方| 亚洲高清无码专区视频| 四虎免费永久在线播放| 在线日韩av永久免费观看| 国产精品自在自线免费观看| 国产大片51精品免费观看| 国产国产成年年人免费看片| 成人爱做日本视频免费| 国产一区在线观看免费| 亚洲成AV人网址| 中国亚洲女人69内射少妇| 国产亚洲综合一区柠檬导航| 亚洲成在人天堂在线|