广播移动应用服务器端开发(基于JSP技术)-2017BroadcastReceiver实验报告:BroadcastReceiver

jsp服务器  时间:2021-04-29  阅读:()

移动应用服务器端开发基于JSP技术 -2017 BroadcastReceiver实验报告

BroadcastReceiver

广播接收器BoardcastReceiver

PAGE5

实训实验报告

实训(实验)项目:

广播接收器使用

实验目的

学习广播接收器相关属性

学习广播接收器相关属性与使用

实训实验设计器材、步骤、结论 

简介

广播接收器可以自由地对自己感兴趣的广播进行注册这样当有相应的广播发出时广播接收器就能够收到该广播并在内部处理相应的逻辑。

实验目的实现强制下线提醒广播

任务借助本章节中所学习的广播知识来实现强制下线功能。

步骤1.在MainActivity所处的文件夹点击右键新建一个名为ActivityCollector

.java的类文件用于管理所有的活动代码如下publicclassActivityCollector{publicstaticList<Activity>activities=newArrayList<Activity>();publicstaticvoidaddActivity(Activityactivity){activities.add(activity);

}publicstaticvoidremoveActivity(Activityactivity){activities.remove(activity);

}

publicstaticvoidfinishAll(){for(Activityactivity:activities){if(!activity.isFinishing()){activity.finish();

}

}

}

}

步骤2 在MainActivity所处的文件夹点击右键新建一个名为 LoginActivity.java的登录界面活动代码如下所示publicclassLoginActivityextendsBaseActivity{privateE ditTextaccountE dit;privateE ditTextpasswordE dit;privateButtonlogin;

@OverridepublicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);accountEdit=(EditText)findViewById(R.id.account);passwordEdit=(EditText)findViewById(R.id.password);l ogin=(Butto n)findViewByI d(R.id.l ogin);login.setOnClickListener(newView.OnClickListener(){

@OverridepublicvoidonClick(Viewv){

Stringaccount=accountE dit.getText().toString();

Stringpas sword=passwordE dit.getText().toString();

if(account.equals("123456")&&password.equals("123456")){

Intentintent=newIntent(LoginActivity.this,MainActivity.class);startActivity(intent);fi n i s h();

}else{

Toast.makeText(LoginActivity.this,"账号或密码错误",Toast.LE NGTH_SHORT).show();}

}

});

}

}

步骤3 新建一个布局文件activity_login.xml文件代码如下

<LinearLayoutxmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">

<LinearLayoutandroid:orientation="horizontal"android:layout_width="match_parent"android:layout_height="60dp">

<TextViewandroid:layout_width="90dp"android:layout_height="wrap_content"android:layout_gravity="center_vertical"

android:layout_gravity="center_vertical"android:inputType="textPassword"/>

</LinearLayout>

<Butto nandroid:id="@+id/login"android:layout_width="match_parent"android:layout_height="60dp"android:text="登录"/>

</LinearLayout>

步骤4修改activity_main布局文件代码添加一个发送强制下线广播的按钮代码如下所示

<LinearLayoutxmlns:android="/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">

<Butto nandroid:id="@+id/offline"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="发送强制下线广播"/>

</LinearLayout>

步骤5 修改MainActivity中的代码如下所示publicclassMainActivityextendsBaseActivity{

@OverrideprotectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);

ButtonforceOffline=(Button)findViewByI d(R.id.offline);forceOffline.setOnClickListener(newView.OnClickListener(){

@OverridepublicvoidonClick(Viewv){

Intentintent=newIntent("com.example.broadcastpractice.FORCE_OFFLINE");sendBroadcast(intent);

}

});

}

}

步骤6修改BaseActivity中的代码如下所示publicclassBaseActivityextendsAppCompatActivity{privateForceOfflineReceiverreceiver;

@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);

ActivityCollector.addActivity(this);

}

@OverrideprotectedvoidonResume(){super.onResume();

IntentFilterintentFilter=newIntentFilter();intentFilter.addAction("com.example.broadcastpractice.FORCE_OFFLINE");receiver=newForceOfflineReceiver();

registerReceiver(receiver,intentFilter);

}

@OverrideprotectedvoidonPause(){super.onPause();if(receiver!=null){unregisterReceiver(receiver);receiver=null;

}

}

@OverrideprotectedvoidonDestroy(){super.onDestroy();

ActivityCollector.removeActivity(this);

}classForceOfflineReceiverextendsBroadcastReceiver{

@OverridepublicvoidonReceive(finalContextc ontext,Intentintent){

AlertDialog.Builderbuilder=newAlertDialog.Builder(context);

//标题builder.setTitle("强制下线通知");

//正文builder.setMessage("您的账号已在别地登录如不是本人操作请尽快修改密码");//不可取消builder.setCancelable(false);

//按钮

builder.setPositiveButton("确认",newDialogInterface.OnClickListener(){@OverridepublicvoidonClick(DialogInterfacedialog,intwhich){

ActivityCollector.finishAll();

Intentintent=newIntent(context,LoginActivity.class);context.startActivity(intent);

}

});builder.show();

}

}

}

步骤7修改AndroidManifest.xml代码如下所示

<manifestxmlns:android="/apk/res/android"package="com.example.broadcastbestpractice">

<applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme">

<activityandroid:name=".MainActivity"/>

<activityandroid:name=".LoginActivity">

<intent-filter>

<actionandroid:name="ent.action.MAIN"/>

<categoryandroid:name="ent.category.LAUNCHE R"/></intent-filter>

</activity>

</application>

</manifest>

程序运行效果如下所示

实验结论及总结

成绩

教师签字

日期

pacificrack:超级秒杀,VPS低至$7.2/年,美国洛杉矶VPS,1Gbps带宽

pacificrack又追加了3款特价便宜vps搞促销,而且是直接7折优惠(一次性),低至年付7.2美元。这是本月第3波便宜vps了。熟悉pacificrack的知道机房是QN的洛杉矶,接入1Gbps带宽,KVM虚拟,纯SSD RAID10,自带一个IPv4。官方网站:https://pacificrack.com支持PayPal、支付宝等方式付款7折秒杀优惠码:R3UWUYF01T内存CPUSS...

LOCVPS新上日本软银线路VPS,原生IP,8折优惠促销

LOCVPS在农历新年之后新上架了日本大阪机房软银线路VPS主机,基于KVM架构,配备原生IP,适用全场8折优惠码,最低2GB内存套餐优惠后每月仅76元起。LOCVPS是一家成立于2012年的国人VPS服务商,提供中国香港、韩国、美国、日本、新加坡、德国、荷兰、俄罗斯等地区VPS服务器,基于KVM或XEN架构(推荐选择KVM),线路方面均选择国内直连或优化方案,访问延迟低,适合建站或远程办公使用。...

ReliableSite怎么样,月付$95美国洛杉矶独立服务器

ReliableSite怎么样?ReliableSite好不好。ReliableSite是一家成立于2006年的老牌美国商家,主要经营美国独立服务器租赁,数据中心位于:洛杉矶、迈阿密、纽约,带宽1Gbps起步,花19美元/月即可升级到10Gbps带宽,月流量150T足够各种业务场景使用,且免费提供20Gbps DDoS防护。当前商家有几款大硬盘美国独服,地点位于美国洛杉矶或纽约机房,机器配置很具有...

jsp服务器为你推荐
耳机苹果5realgooglegetIntjavacss3圆角如何用CSS实现圆角矩形?traceroute网络管理工具traceroute是什么程序勒索病毒win7补丁为了防勒索病毒,装了kb4012212补丁,但出现关机蓝屏的问题了,开机正常canvas2动漫cv井口裕香,都有哪些作品?iphonewifi为什么我的苹果手机连不上wifi联通版iphone4s苹果4s怎么分移动版联通版电信版?联通版iphone4s怎么知道到苹果4s是联通版,还是移动版
域名劫持 台湾服务器租用 fastdomain rak机房 美国主机代购 特价空间 godaddy域名转出 patcha win8.1企业版升级win10 tightvnc 谁的qq空间最好看 hkg 免费高速空间 支付宝扫码领红包 德隆中文网 中国电信测速网站 广州虚拟主机 日本代理ip 浙江服务器 睿云 更多