Android 全局变量Application 来统筹整个应用的公共数据-----广播通信
来源:互联网 发布:易企秀邀请函报名数据 编辑:程序博客网 时间:2024/06/10 00:33
第一步:新建 MyApplication
package com.server;import android.app.Application;public class MyApplication extends Application {/* * 此处记录所有广播信息标志 */private String _TrainGrade_Line_DATA_CHANGE = "TrainGrade_Line_DATA_CHANGE";public String getTrainGradeLineDataChange() {return _TrainGrade_Line_DATA_CHANGE;}@Overridepublic void onCreate() {super.onCreate();}@Overridepublic void onTerminate() {super.onTerminate();}}
第二步:注册应用启动的application AndroidManifest.xml 中添加
<application
android:name="com.server.MyApplication"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="TrainGradeActivity"></activity>
</application>
第三步: Activity中获取公共数据
public class TrainGradeActivity extends Activity {<span style="color:#ff0000;">MyApplication myapp = (MyApplication) this.getApplication();//动态曲线数据变更消息标志private String TrainGrade_Line_DATA_CHANGE = myapp.getTrainGradeLineDataChange();</span>//动态曲线private DynamicLine dynamicLine;<span style="background-color: rgb(255, 255, 102);">//this 广播监听private BroadcastReceiver mBroadcastReceiver;</span> private int mX = 40; //activity 自身布局 private RelativeLayout mainLayout; /** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏 setContentView(R.layout.activity_traingrade); //填充自定义视图到页面 InjectView(); <span style="background-color: rgb(255, 255, 102);">Inital();</span><span style="background-color: rgb(255, 255, 102);"> //注册广播 registerBoradcastReceiver();</span> //新建线程,模拟消息发送,重绘压力曲线 new Thread(){ public void run() { for (int index=0; index<20; index++) { <span style="background-color: rgb(255, 255, 51);">Intent mIntent = new Intent(TrainGrade_Line_DATA_CHANGE); mIntent.putExtra("Point_X",mX); mIntent.putExtra("Point_Y",(int)(Math.random()*200)); //发送广播 sendBroadcast(mIntent); </span> try { sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } mX += 30; } }; }.start(); }@Overrideprotected void onResume() { /** * 设置为横屏 */ if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); } super.onResume();}/* * 自定义控件填充到页面布局中 */private void InjectView(){ //需要填充的父布局 mainLayout = (RelativeLayout) findViewById(R.id.Traingrade_Left_Layout); //布局填充服务 LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); //定义自定义控件 View ItypetixinLayout = layoutInflater.inflate(R.layout.itypetixin, null); View DynamicLineLayout = layoutInflater.inflate(R.layout.dynamicline, null); //将自定义控件加入到主视图中 mainLayout.addView(ItypetixinLayout); mainLayout.addView(DynamicLineLayout);}private void Inital(){ //获取动态曲线 dynamicLine = (DynamicLine) this.findViewById(R.id.DynamicLine); <span style="background-color: rgb(255, 255, 51);">//监听广播 向动态曲线发送最新数值 mBroadcastReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if(action.equals(TrainGrade_Line_DATA_CHANGE)){ int xstr = intent.getIntExtra("Point_X",0); int ystr = intent.getIntExtra("Point_Y",0); dynamicLine.setLinePoint(xstr, ystr); } } };</span> }<span style="background-color: rgb(255, 255, 102);">//注册广播private void registerBoradcastReceiver(){ IntentFilter myIntentFilter = new IntentFilter(); myIntentFilter.addAction(TrainGrade_Line_DATA_CHANGE); //注册广播 registerReceiver(mBroadcastReceiver, myIntentFilter); } </span>}
0 0
- Android 全局变量Application 来统筹整个应用的公共数据-----广播通信
- Android中Application类用法(整个程序的全局变量,即单例),类似于session
- <Android>Application全局变量的使用
- android开发的全局变量Application
- Android——Application全局变量应用
- Android通过Application存储应用全局变量
- 创建自己的Application,以在整个应用中分享数据(程序启动时会默认创建一个Application)
- android 杀掉整个application的方法
- Android 用application保存全局变量,关于Android中传递数据的一些讨论
- Android application对象的使用 全局变量
- Android application对象的使用 全局变量
- 慎用Android的Application中的全局变量
- Android中application 全局变量
- Android中application 全局变量
- android application全局变量
- android 全局变量 Application
- Android Application 创建全局变量
- Android Application 创建全局变量
- 使用 Eclipse 的 SVN 插件创建项目的主干/分支/标签
- 在 CentOS 上安装Erlang
- 编辑手账 20141217 南京「哀悼日」 容認できぬ一方的な反日宣伝
- popupwindow中EditText获取焦点后自动弹出软键盘
- Eclipse背景设置
- Android 全局变量Application 来统筹整个应用的公共数据-----广播通信
- 设计模式六大原则(1):单一职责原则
- 多组表格的思路
- Android中ViewStub组件使用
- android 滚动条 相关属性
- 定制UITextField
- HDOJ 5143 NPY and arithmetic progression
- 编辑手账 20141217 民主党代表選へ 出直しには厳しい総括が要る
- Android listView优化