zoukankan      html  css  js  c++  java
  • android 之 Intent、broadcast

    Intent的功能有:

    image

    在mainActivity中为按钮1添加监听事件:

    listener1 = new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
           Intent intent1 = new Intent(mainActivity.this, Activity1.class);
            intent1.putExtra("mainActivity", "这是来自mainActivity的数据");
            startActivityForResult(intent1, REQUEST_CODE);
        }
    };

    在Activity1中接收来自mainActivity中Intent中的数据:

    String data = null;
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        data = extras.getString("mainActivity");
    }
    setTitle("现在在Activity1里:" + data);

    为Activity1中的按钮添加监听事件,返回一个Intent:

    listener1 = new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Bundle bundle = new Bundle();
                    bundle.putString("store", "数据来自Activity1");
                    Intent mIntent = new Intent();
                    mIntent.putExtras(bundle);
                    setResult(RESULT_OK, mIntent);
                    finish();
                }
            };

    在mainActivity中覆写onActivityResult()方法,对返回的内容处理:

    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == REQUEST_CODE) {
                if (resultCode == RESULT_CANCELED) {
                    setTitle("取消");
                } else if (resultCode == RESULT_OK) {
                    String temp = null;
                    Bundle extras = data.getExtras();
                    if (extras != null) {
                        temp = extras.getString("store");
                    }
                    setTitle("在mainActivity中:"+temp);
                }
            }
        }

    imageimageimage

    为按钮2添加监听事件:

    protected static final String ACTION1 = "com.sunny.action.BROADCASE";

    listener2 = new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent intent2 = new Intent(ACTION1);
                    sendBroadcast(intent2);
                }
            };

    添加一个Broadcast Receiver,其捕获action为com.sunny.action.BROADCASE的Intent,生成Notification:

    public class broadcastReceive1 extends BroadcastReceiver {
        private static final int NOTIFICATION_ID = 0;
        Context context;
        
        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            this.context=context;
           showNotification();
        }

        private void showNotification() {
            // TODO Auto-generated method stub
            NotificationManager notificationManager=(NotificationManager) context.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
            Notification notification=new Notification(R.drawable.icon, "在broadcastReceive1中",System.currentTimeMillis());
            PendingIntent contentIntent=PendingIntent.getActivity(context, 0, new Intent(context,mainActivity.class), 0);
            notification.setLatestEventInfo(context, "在broadcastReceive1中:", null, contentIntent);
            notificationManager.notify(NOTIFICATION_ID, notification);
        }

    }

    其在AndroidManifest.xml中注册:

    <receiver android:name=".broadcastReceive1">
        <intent-filter>
            <action android:name="com.sunny.action.BROADCASE" />
        </intent-filter>
    </receiver>

    imageIntent的功能有:

    image

    在mainActivity中为按钮1添加监听事件:

    listener1 = new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
           Intent intent1 = new Intent(mainActivity.this, Activity1.class);
            intent1.putExtra("mainActivity", "这是来自mainActivity的数据");
            startActivityForResult(intent1, REQUEST_CODE);
        }
    };

    在Activity1中接收来自mainActivity中Intent中的数据:

    String data = null;
    Bundle extras = getIntent().getExtras();
    if (extras != null) {
        data = extras.getString("mainActivity");
    }
    setTitle("现在在Activity1里:" + data);

    为Activity1中的按钮添加监听事件,返回一个Intent:

    listener1 = new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Bundle bundle = new Bundle();
                    bundle.putString("store", "数据来自Activity1");
                    Intent mIntent = new Intent();
                    mIntent.putExtras(bundle);
                    setResult(RESULT_OK, mIntent);
                    finish();
                }
            };

    在mainActivity中覆写onActivityResult()方法,对返回的内容处理:

    @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == REQUEST_CODE) {
                if (resultCode == RESULT_CANCELED) {
                    setTitle("取消");
                } else if (resultCode == RESULT_OK) {
                    String temp = null;
                    Bundle extras = data.getExtras();
                    if (extras != null) {
                        temp = extras.getString("store");
                    }
                    setTitle("在mainActivity中:"+temp);
                }
            }
        }

    imageimageimage

    为按钮2添加监听事件:

    protected static final String ACTION1 = "com.sunny.action.BROADCASE";

    listener2 = new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent intent2 = new Intent(ACTION1);
                    sendBroadcast(intent2);
                }
            };

    添加一个Broadcast Receiver,其捕获action为com.sunny.action.BROADCASE的Intent,生成Notification:

    public class broadcastReceive1 extends BroadcastReceiver {
        private static final int NOTIFICATION_ID = 0;
        Context context;
        
        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            this.context=context;
           showNotification();
        }

        private void showNotification() {
            // TODO Auto-generated method stub
            NotificationManager notificationManager=(NotificationManager) context.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
            Notification notification=new Notification(R.drawable.icon, "在broadcastReceive1中",System.currentTimeMillis());
            PendingIntent contentIntent=PendingIntent.getActivity(context, 0, new Intent(context,mainActivity.class), 0);
            notification.setLatestEventInfo(context, "在broadcastReceive1中:", null, contentIntent);
            notificationManager.notify(NOTIFICATION_ID, notification);
        }

    }

    其在AndroidManifest.xml中注册:

    <receiver android:name=".broadcastReceive1">
        <intent-filter>
            <action android:name="com.sunny.action.BROADCASE" />
        </intent-filter>
    </receiver>

    image

  • 相关阅读:
    铺地毯
    解方程
    引水入城
    10.16今日暂时停更博客
    聪明的质监员
    CCF NOI plus 201(7)6 初赛题 解题报告
    初赛可能会用到的计算机基础理论知识整理
    火柴排队
    借教室
    10.10今日暂时停更博客
  • 原文地址:https://www.cnblogs.com/yechanglv/p/6922954.html
Copyright © 2011-2022 走看看