澳门太阳娱乐集团官网-太阳集团太阳娱乐登录

BroadCast的初级使用手记
分类:脚本专栏

统计汇总功能:TotalSummary太阳集团太阳娱乐登录,属性:此属性必须设置KeyFieldName属性;Settings中的ShowFooter属性设置为TrueDisplayFormat:同.net中的String.Format使用方法基本相同。例如:总计{0}个。此处可以设置统计方式显示时的小数位数等。设置方法:总计:{0:#.##}。其中的点前面的“#”表示整数部分;后面的“#”表示保留小数位数。FieldName:设置需要统计的字段。ShowInColumn:需要显示在哪一列。ShowInGroupFooterColumn:分组时显示在哪一列。SummaryType:统计方式。Sum:和计算;Min:最小值;Max:最大值。Count:计数;Average:平均值。Custom:自定义;None:默认。

WinExec 使用手记,winexec使用手记

在Delphi XE及其以下的版本中一直这样使用WinExec函数:

WinExec(PAnsiChar(FUnInstallCmd),SW_SHOWNORMAL);

FUnInstallCmd 是一个String 变量,这样使用一直正常,某日,将代码在XE3中编译运行,发现这个用法不管用了,查了很多资料后,才知道String默认类型已经发生了改变,在XE3需要这样使用才能正常:

WinExec(PAnsiChar(AnsiString(FUnInstallCmd)),SW_SHOWNORMAL);

 

记录下来,记性实在不好!

 

使用手记,winexec使用手记 在Delphi XE及其以下的版本中一直这样使用WinExec函数: WinExec(PAnsiChar(FUnInstallCmd),SW_SHOWNORMAL); FUnInstallCmd 是一...

这只是我在学Android过程中对于所学知识的巩固和方便日后查询的学习笔记,能帮助到有需要的和我一样的初学者就更好了

默认分组设置:方法1:gdvlist.GroupBy((GridViewDataColumn)gdvlist.Columns["ColName"]);//使表格默认按某一列自动分组方法2: 在表格控件中 添加GroupIndex属性;例如: <dx:GridViewDataTextColumnCaption="名称" FieldName="PStepName" VisibleIndex="0"GroupIndex="0"></dx:GridViewDataTextColumn>

广播分为标准广播和有序广播
标准广播:所有接收器同时可以接收
有序广播:同一时刻只能有一个接收器接收到,并且可以决定是否继续向下传播

默认筛选设置:gridlist.FilterExpression = "绑定字段名称 = '筛选内容'";

Receiver可在代码中注册(动态注册)也可在AndroidManifast.xml中注册(静态注册)
动态注册可在应用运行时接收广播
静态注册在任何时候都可以接收广播(最常见即是防止服务关闭用来自启)

首先

创建MyReceiver继承BroadCastReceiver并重写onReceive()即可

public class MyReceiver extends BroadCastReceiver{
        @override
        public void onReceive(Context context ,Intent intent){
        //业务逻辑
        }
}

动态注册

以Activity中为例

MyReceiver receive;
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setonContentView(R.layout.activity_main);
    IntentFilter intentFilter=new IntentFilter();//动作捕捉
    intentFilter.addAction("......")//所要捕捉的动作
    receiver=new MyReceiver();
    registerReceiver(receiver ,intentFilter);
}
protected void onDestroy(){
    super.onDestroy();
    unregisterReceiver(receiver)
}

动态注册后在销毁活动时一定要解除注册

静态注册

AndroidManifaste.xml中
<application>中
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:export="true"
<intent-filter>
<action android:name="......">//此为IntentFilter所要捕捉的动作,可自定
</intent-filter>
/>

发送自定义广播

以自定的 "can you receive this broadcast"为例

标准广播

这里采用静态注册的方式
onReceive()方法中添加一个Toast来表示接受到即可

AndroidManifast.xml中
<appication
    <reciever
        <intent-filter>
            <action android:name="can you receive this broadcast" />
        </intent-filter>
    />
/>

创建一个按钮button模拟触发

button.setonClickListener(....){
     public void onClick(View v){
          Intent intent=new Intent("can you receive this broadcast");
          sendBroadcast(intent);
    }   
}

此时点击按钮MyReceiver即可接收到此广播

有序广播

与标准广播大体相似,只不过发送广播的方法不同

sendOrderBroadcast(intent,null);
//第二个参数为与权限有关的字符串,一般null即可

然后气<intent-filter>中设置优先级即可

<intent-filter android:priority="100">

捕捉相同动作的receiver优先级大的优先接收sendOrderBroadcast()发送的广播
在onReceive()方法中调用 abortBroadcast()可截断广播使之无法继续传递

本地广播

为避免自用的重要广播如发送了全局广播可能会被其他应用截获从而引起安全问题或者其他应用不断向自己发送垃圾广播

LocalBroadcastManager manager;
MyReceiver receiver;

manager=LocalBroadcastManager.getInstance(this);

......
    void onClick(View v){
        Intent intent=new Intetn("can you receive this broadcast");
        manager.sendBroadcast(intent);
    }
     IntetnFilter filter=new IntentFilter();
     filter.addAction("can you receive this broadcast");
     reveiver=new MyReceiver();
     manager.registerReceiver(receiver,filter);
}
protevted void onDestroy(){
    super.onDestroy();
    manager.unregisterReveiver(receiver);
}

本地广播无法使用静态注册来接收,因为发送本地广播时应用肯定已然启动了

如有错误欢迎指正

结束

本文由澳门太阳娱乐集团官网发布于脚本专栏,转载请注明出处:BroadCast的初级使用手记

上一篇:Oracle如何进展日期查询 下一篇:没有了
猜你喜欢
热门排行
精彩图文