如何向安卓端传递两个map
Ⅰ 我有一个安卓手机三星和一台iPad,如何通过WiFi直连快速传递文件(就是自己用手机建立一个WiF
方法/步骤
手机端打开es如图。
注意事项
手机wifi连接和电脑网络连接(无线有线连接都行)要同在一个路由器上。
笔者测试用路由器的是电信送的无线猫,手机无线连接电脑网线连接也行。
Ⅱ 如何android多Activity间共享数据
其实有如下5种方式:
1.基于消息的通信机制 Intent ---boudle ,extra
数据类型有限,比如遇到不可序列化的数据Bitmap,InputStream, 或者LinkList链表等等数据类型就不太好用。
2. 利用static静态数据,public static成员变量;
3.基于外部存储的传输, File/Preference/ Sqlite ,如果要针对第三方应用需要Content Provider
4.基于IPC的通信机制context 与Service之间的传输,如Activity与Service之间的通信,定义AIDL接口文件。
5. 基于Application Context
这里面我觉得第五种方法更具普适性,在网上找了篇讲解得好的文章,原文如下:
在Android中使用Intent在两个Activity间传递数据时,只能是基本类型数据,或者是序列化对象。Intent是一种基于消息的进程内和进程间通信模型,当我们需要在我们应用程序内部,多个Activity间进行复杂数据对象共享交互时,使用Intent就显得很不方便。此时,我们就需要一种数据共享的机制来实现。当然,直接使用java语言中的静态变量是可以的,但在Android中有更为优雅的实现方式。
The more general problem you are encountering is how to save stateacross several Activities and all parts of your application. A staticvariable (for instance, a singleton) is a common Java way of achievingthis. I have found however, that a more elegant way in Android is toassociate your state with the Application context.
--如想在整个应用中使用,在java中一般是使用静态变量,而在android中有个更优雅的方式是使用Application context。
As you know, each Activity is also a Context, which is informationabout its execution environment in the broadest sense. Your applicationalso has a context, and Android guarantees that it will exist as asingle instance across your application.
--每个Activity 都是Context,其包含了其运行时的一些状态,android保证了其是single instance的。
The way to do this is to create your own subclass of android.app.Application,and then specify that class in the application tag in your manifest.Now Android will automatically create an instance of that class andmake it available for your entire application. You can access it fromany context using the Context.getApplicationContext() method (Activityalso provides a method getApplication() which has the exact sameeffect):
--方法是创建一个属于你自己的android.app.Application的子类,然后在manifest中申明一下这个类,这是android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个实例,进而获取其中的状态(变量)。
class MyApp extends Application { private String myState; public String getState(){ return myState; } public void setState(String s){ myState = s; } } class Blah extends Activity { @Override public void onCreate(Bundle b){ ... MyApp appState = ((MyApp)getApplicationContext()); String state = appState.getState(); ... } }
对于Application的生命周期,今天测试了一下,Application类型在该APP被install的时候就已经实例化了,并且onCreate也已经被调用了。
如果需要创建类型里面可能需要用到的对象的话,就可以在构造函数里面实现,但是如果需要将该类型bind Service或者registerReceiver等操作时,需要将这些操作放到onCreate中,否则会抛出异常。其原因主要是这个对象还没有创建完成,此时你用这个对象来bindservice必然会出现意想不到的情况,所以在使用时还需要注意。
Ⅲ 如何在不同的android应用之间传递数据
一个Android程序可以由多个Activity和Servier组成,在这些程序组件之间传递数据的方法有以下几种,每种方法都有其特定的使用途径。 1、原始数据类型: 在Activity/Servier之间传递临时性的原始数据,可以使用Intent的putExtras方法来传递数据。若传递的数据需要长久保存,则使用SharedPreference类来完成。 2、传递对象。 当在Activity/Servier之间传递不需要长久保存的对象时,可以使用以下几种途径: (1)通过Application类,每个Android应用程序都有一个Application类。当你在程序的AndroidManifest.xml中给Application设定一个名字时,你的程序中就必须有一个Application的子类。这个Application子类会被Android自动实例化,并且是一个全家性的类,它的生命周期和程序的生命周期相同,你可以把一些全局性的对象保存在Application类中。Application类可以通过getApplication()获得。 (2 通过HashMap of WeakReferences传递对象。当一个Activity需要向另外一个Activity传递对象时,可以使用一个关键字把对象存在一个HashMap中,并把这个关键字通过Internt的Extras发给目标Activity,目标Activity接到该关键字后使用该关键字把对象冲HashMap中取出。
Ⅳ 高德地图文件放在哪里
用户将高德地图下载安装到手机上之后,在运行软件的时候就会在手机的SD卡或机身内存根目录(针对安卓手机,苹果iOS不越狱的情况下目录不开放)中自动生成一个名叫autonavi的文件夹,文件夹中包含了mini_mapv2、mini_mapv3等文件夹。
而这两个文件夹就是高德地图数据包要存放的位置,打开mini_mapv2/mini_mapv3之后就会发现其中有一个vmap文件夹,用户将2D高德地图数据包下载到mini_mapv2这个文件夹中、将3D高德地图数据包下载到mini_mapv3这个文件夹中。
(4)如何向安卓端传递两个map扩展阅读:
高德地图的地理位置信息以频道主题的形式展现,所以我们能在“主题”界面看到酒店、优惠、演出、商场四个频道,刚刚发布的新的1.2_8.30版高德地图还新增了美食频道和汽车两个新频道。
其中,酒店频道是和携程网合作,整合了全国两万家酒店的信息,我们不仅能在高德地图上了解酒店的介绍,星级评分,详细的房价与酒店照片,还能直接拨打电话预定或通过页面预定。
优惠频道则是与维络城合作,整合了维络城的折扣和优惠信息,帮助我们节省消费。当然由于维络城自由的方式,用户还不能实现拿手机优惠券去消费,只能先到维络城打印优惠券。
Ⅳ android两个activity之间怎么传递数据
Activity之间是没有办法直接传递数据的。Android的设计原则是,用Intent在不同的Activity和进程之间进行通信,但是通常来讲,Intent中只能存入基本数据类型和系统默认支持的比如Uri之类的。那么对于用户自己定义的数据结构是无法直接用Intent来传送的,如果想要通过Intent来传递自定义数据,可以让数据结构实现Parcelable接口,这样就可以把数据放入Intent。但是Intent的传送效率也不是很高,特别是当传递一些如Bitmap的大数据,用Intent传递超过500K的Bitmap,就会造成Framework层的Java Binder挂掉,结果就是传递不成功。
这点可以算成是Android的一个弊端,没有很好的解决方案。能做到的就是尽量设计的时候注意,尽量让Activity之间共享基本数据类型。
Android本身的应用中也深受其害,可以看到有很多应用程序的源代码中的主要的类在三千行以上的不在少数,比如Browser中的BrowserActivity有四千多行;Mms中的ComposeMessageActivity也有四千多行,等等。为什么一个类会如此之大,就是因为它们是程序的主页面,是业务的核心逻辑所在,里面也控制着很多的其他的数据结构,而又无法与另外的Activity共享,所以就只能在一个Activity里面做所的事情。