WEB开发网      婵犵數濞€濞佳囧磹婵犳艾鐤炬い鎰堕檮閸嬬喐銇勯弽銊с€掗梻鍕閺岋箑螣娓氼垱笑闂佽姘﹂褔婀佸┑鐘诧工妤犲憡绂嶉崜褏纾奸弶鍫涘妼缁楁岸鏌熷畡鐗堝殗闁诡喒鏅犲畷褰掝敃閵堝棙顔忔繝鐢靛仦閸ㄥ爼骞愰幘顔肩;闁规崘绉ぐ鎺撳亹闁绘垶锕╁Λ鍕⒑閹肩偛濡奸悗娑掓櫇缁顓兼径妯绘櫇闂佹寧绻傞弻濠囨晝閸屾稓鍘甸柣搴㈢⊕閿氶柣蹇ョ稻缁绘繃绻濋崘銊т紝闂佽鍨伴崯鏉戠暦閻旂⒈鏁傞柛鈾€鏅欑槐妯衡攽閻愬樊鍤熷┑顔藉劤铻為柛鏇ㄥ墯閸欏繘鏌嶉崫鍕櫣缂佲偓婢跺绠鹃柟瀛樼箘閿涘秵顨ラ悙顏勭伈闁诡喖缍婂畷鎯邦槻婵℃彃顭烽弻娑㈠Ω閵夈儺鍔夌紓浣稿€哥粔褰掑极閹剧粯鏅搁柨鐕傛嫹 ---闂傚倷鐒︾€笛兠洪埡鍛闁跨噦鎷�
开发学院软件开发Java 保护自己的MIDlet程序之二:TimeProtector 阅读

保护自己的MIDlet程序之二:TimeProtector

 2007-12-23 12:31:15 来源:WEB开发网 闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹闂傚倷绀侀幉锟犲垂閻㈠灚宕查柟鎵閸庡秵銇勯幒鎴濃偓鐢稿磻閹炬枼妲堟繛鍡楃С濞岊亞绱撻崒姘扁枌闁瑰嚖鎷�婵犵數濮幏鍐川椤撴繄鎹曢梻渚€娼уú銈吤洪妸鈺佺劦妞ゆ帊鑳堕埊鏇㈡煏閸モ晛浠х紒杈╁仱閺佹捇鏁撻敓锟�闂傚倷绶氬ḿ褍螞閹绢喖绠柨鐕傛嫹  闂傚倷鑳舵灙缂佺粯顨呴埢宥夊即閵忕姵鐎梺缁樺姈椤愮厧鈽夊Ο閿嬬€婚梺褰掑亰閸撴稑鈻斿鑸碘拺闁告稑饪村▓鏃€绻涚仦鍌氬闁崇粯鎹囬獮瀣攽閹邦剚顔傛俊鐐€栧濠氬储瑜忛幉鎾晸閿燂拷
核心提示:第一部分介绍了PRotector,并实现了一个最简单的Protector:OnceProtector第二部分将实现一个TimeProtector我们先来设想他所具有的功能:1,保护自己的MIDlet程序之二:TimeProtector,没有到指定时间,他是处于激活状态的(check函数返回true);2,准备好,下一篇

第一部分介绍了PRotector,并实现了一个最简单的Protector:OnceProtector
第二部分将实现一个TimeProtector
我们先来设想他所具有的功能:
1。没有到指定时间,他是处于激活状态的(check函数返回true);
2。过了指定时间,他就不能激活;
3。一旦过期,即使用户调整了时间也不再激活。

嗯,明确了目的,下面就来继续。
涉及到了时间问题,就来说说如何处理时间。midp有Date类型,但是提供的功能非常有限。
构造函数无法接受人们熟悉的字符串来初始化。
我们必须使用Calendar来做这些工作,当然,如果long在你眼里看来就是time(黑客帝国?)。。。
我是这样处理的,看TimeProtector的构造函数:

   public TimeProtector(MIDlet app,int year,int month,int date)
   {
     super(app);
     Calendar c=Calendar.getInstance();
     c.set(Calendar.YEAR,year);
     c.set(Calendar.MONTH,month-1);
     c.set(Calendar.DATE,date);
     date_=c.getTime();
   }

这里要注意一个问题,就是month-1的问题,set month 9就是10月的意思。

TimeProtector有一个字段date_,可以用date_.getTime()直接和System.currentTimeMillis()比较大小。

那么我们如何实现第三个设想呢?如何做到即使用户修改时间也无法继续使用呢?
不妨再用用RMS来做个标记,表明已经过期:)
下面就是那个决定命运的check函数:

   public boolean check()
   {
    boolean r=true;
     try
     {
       RecordStore rs=RecordStore.openRecordStore(NameRMS,true);
       RecordEnumeration e=rs.enumerateRecords(null,null,false);
       if(e.hasNextElement())
       {
        r=false;
       }
       else
       {
         if(date_.getTime()<System.currentTimeMillis())
         {
           writeTag(rs);
           r=false;
         }
         else
         {
           r=true;
         }
       }
       rs.closeRecordStore();
     }
     catch(Exception ex)
     {
       r=false;
     }
     if(!r)
       showUI();
    
     return r;
   }


好了,这就是我的TimeProtector的实现,你是怎么实现的呢?

TimeProtector的使用:
在startApp的开头加入if(!new TimeProtector(this,2005,10,19).check())return;

就是这么简单。准备好,下一篇就来实现SNProtector:)
有意见或建议请联系vmlinuxx@Gmail.com,共同学习,共同提高:)

(出处:http://www.cncms.com)


Tags:保护 自己 MIDlet

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接