广播移动应用服务器端开发(基于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>

程序运行效果如下所示

实验结论及总结

成绩

教师签字

日期

Puaex:香港vds,wtt套餐,G口带宽不限流量;可解流媒体,限量补货

puaex怎么样?puaex是一家去年成立的国人商家,本站也分享过几次,他家主要销售香港商宽的套餐,给的全部为G口带宽,而且是不限流量的,目前有WTT和HKBN两种线路的方面,虽然商家的价格比较贵,但是每次补一些货,就会被抢空,之前一直都是断货的状态,目前商家进行了补货,有需要这种类型机器的朋友可以入手。点击进入:puaex商家官方网站Puaex香港vds套餐:全部为KVM虚拟架构,G口的带宽,可...

IntoVPS:按小时计费KVM月费5美元起($0.0075/小时),6个机房可选

IntoVPS是成立于2004年的Hosterion SRL旗下于2009年推出的无管理型VPS主机品牌,商家提供基于OpenStack构建的VPS产品,支持小时计费是他的一大特色,VPS可选数据中心包括美国弗里蒙特、达拉斯、英国伦敦、荷兰和罗马尼亚等6个地区机房。商家VPS主机基于KVM架构,最低每小时0.0075美元起($5/月)。下面列出几款VPS主机配置信息。CPU:1core内存:2GB...

RFCHOST - 洛杉矶CN2 GIA VPS季付23.9美元起 100Mbps带宽

RFCHOST,这个服务商我们可能有一些朋友知道的。不要看官网是英文就以为是老外服务商,实际上这个服务商公司在上海。我们实际上看到的很多商家,有的是繁体,有的是英文,实际上很多都是我们国人朋友做的,有的甚至还做好几个品牌域名,实际上都是一个公司。对于RFCHOST商家还是第一次分享他们家的信息,公司成立大约2015年左右。目前RFCHOST洛杉矶机房VPS正进行优惠促销,采用CN2优化线路,电信双...

jsp服务器为你推荐
loadedios支持ipad支持ipad请仔细阅读在本报告尾部的重要法律声明itunes备份如何用iTunes备份iPhoneitunes备份itunes 里面的资料如何备份?tcpip上的netbios禁用tcp/ip上的netbios对网络应用软件的正常运行有没有影响?iphonewifi苹果wifi版和4G版是什么意思,有什么区别吗google图片搜索如何使用google图片搜索引擎?icloudiphone自己用icloud把iPhone抹掉了.激活却不是自己的id怎么破
网站空间商 域名管理 到期域名查询 深圳域名空间 vps代理 VPS之家 中文域名申请 金万维动态域名 国外永久服务器 美国主机评测 堪萨斯服务器 evssl证书 发包服务器 云全民 cpanel空间 免空 河南移动邮件系统 银盘服务是什么 超级服务器 starry 更多