如何android多Activity间共享数据 (extends Application)
来源:互联网 发布:三菱plc伺服编程实例 编辑:程序博客网 时间:2024/05/21 19:31
1,如何共享Activity中的数据
首先你如果想在整个应用中使用某个数据,在java中一般是使用静态变量的方式,而在android中有个更优雅的方式是使用Application context。
每个Activity 都是Context,其包含了其运行时的一些状态,android保证了其是single instance的。
方法是创建一个属于你自己的android.app.Application的子类,然后在manifest中申明一下这个类,这是android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个实例,进而获取其中的状态(变量)。
2,举例
package com.pili.pldroid.streaming.camera.demo;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.util.Log;import com.pili.pldroid.streaming.CameraStreamingManager;import com.pili.pldroid.streaming.CameraStreamingManager.EncodingType;import com.pili.pldroid.streaming.WatermarkSetting;import com.pili.pldroid.streaming.widget.AspectFrameLayout;/** * Created by jerikc on 15/10/29. */public class SWCodecCameraStreamingActivity extends StreamingBaseActivity { private static final String TAG = "SWCodecCameraStreaming"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AspectFrameLayout afl = (AspectFrameLayout) findViewById(R.id.cameraPreview_afl); afl.setShowMode(AspectFrameLayout.SHOW_MODE.REAL); CameraPreviewFrameView cameraPreviewFrameView = (CameraPreviewFrameView) findViewById(R.id.cameraPreview_surfaceView); cameraPreviewFrameView.setListener(this); WatermarkSetting watermarksetting = new WatermarkSetting(this, R.drawable.qiniu_logo, WatermarkSetting.WATERMARK_LOCATION.SOUTH_WEST, WatermarkSetting.WATERMARK_SIZE.MEDIUM, 100); mCameraStreamingManager = new CameraStreamingManager(this, afl, cameraPreviewFrameView, EncodingType.SW_VIDEO_WITH_SW_AUDIO_CODEC); // sw codec mCameraStreamingManager.prepare(mCameraStreamingSetting, mMicrophoneStreamingSetting, watermarksetting, mProfile); mCameraStreamingManager.setStreamingStateListener(this); mCameraStreamingManager.setSurfaceTextureCallback(this); mCameraStreamingManager.setStreamingSessionListener(this); mCameraStreamingManager.setStreamStatusCallback(this); // update the StreamingProfile setFocusAreaIndicator(); }}
这个效果就是使用静态变量是一样的,但是其更符合android的架构体系。
注意APP必须在manifest注册(
<application android:allowBackup="true" android:name=".StreamingApplication" //此处即是 android:icon="@mipmap/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>
当你创建一个空白页的时候,同样的情况
class SWCameraStreamingActivity extends Activity
这个句式去集成了父类的情况
随后就可以复写方法进行实现了
@Override protected void onResume() { super.onResume(); mCameraStreamingManager.resume(); } @Override protected void onPause(){ super.onPause(); mCameraStreamingManager.pause(); }
1 0
- 如何android多Activity间共享数据 (extends Application)
- 如何android多Activity间共享数据 (extends Application)
- 如何android多Activity间共享数据 (extends Application)
- 如何android多Activity间共享数据 (extends Application)
- 如何android多Activity间共享数据
- 如何android多Activity间共享数据
- android activity之间共享数据(application context)
- Android 多个Activity之间共享类(数据)——Application Context
- Android多个Activity之间共享类(数据)——Application Context
- Android多个Activity之间共享类(数据)——Application Context
- Android中用application在两个activity中进行数据共享(1)
- Android中用application在两个activity中进行数据共享(2)
- android 共享全局数据-Application
- Application实现Android数据共享
- Android在多个Activity共享数据
- Android中Activity共享变量Application context
- [一问一答][Android] 如何在两个Activity之间传递(共享)数据
- Android activity之间数据传递和共享的方式之Application
- 决策树decision tree分析
- 关于mybatis增加缓存引入的坑
- A/B Test测试完全指南
- centos minimal虚拟机测试javaee配置
- leetcode 25. Reverse Nodes in k-Group
- 如何android多Activity间共享数据 (extends Application)
- MUI传值
- 设置系统外观属性
- xdebug(32) : warning C4229: 使用了记时错误 : 忽略数据上的修饰符
- 对象的强、软、弱和虚引用
- IHS转发,输入根路径,出现欢迎页,如何关闭
- WMI使用的WIN32_类库名 .
- leetcode 24. Swap Nodes in Pairs
- mysql binlog 数据介绍