×

深圳网站建设—APP开发—网站制作—小程序开发_博纳网络公司

0755 -
82538016
82560826
网站制作资讯

开发APP关于Activity数据传输的三种形式与代码分享

文章编辑:网站建设 文章来源:APP开发 浏览量:

  开发APP使用剪切板传递数据,把数据放在一个剪切对象(ClipObject)里,然后这个对象会被放在系统的剪贴板里,这样可用于在Activity间传递数据。深圳APP开发公司整理出ClipObject可以有以下3种形式。
(1)Text:文字字符串文字直接放在Clip对象中,然后放在剪贴板里,粘贴这个字符串的时候直接从剪贴板拿到这个对象,然后可以在应用中使用。
(2)URI:Uri对象表示任何形式的URI。这种形式主要用于从一个ContentProvider中复制复杂的数据。
复制的时候把一个Uri对象放在一个Clip对象中,然后再放在剪贴板里,粘贴的时候取出这个Clip对象,得到Uri,把它解析为一个数据资源,如ContentProvider,然后从资源中复制数据到应用中。
(3)Intent:Intent对象复制的时候把Intent对象放在Clip对象中,再放入剪贴板,粘贴数据时从Clip对象中得到Intent对象,然后可以在应用中使用。剪贴板每次仅会持有一个Clip对象,当应用放另一个Clip对象进来时,前一个就消失了。示例代码如下:
private void copy(){     ClipboardManager clipboard = (ClipboardManager)             getSystemService( Context. CLIPBOARD_ SERVICE);     ClipData clip = ClipData. newPlainText(" text"," Hello, World!");     clipboard. setPrimaryClip( clip);
} private void paste(){     ClipboardManager clipboard = (ClipboardManager)             getSystemService( Context. CLIPBOARD_ SERVICE);     if ((clipboard. hasPrimaryClip())) { //判断 数据 类型 是否 是 Text 类型         if ((clipboard. getPrimaryClipDescription(). hasMimeType( MIMETYPE_ TEXT_ PLAIN))) {             ClipData. Item item = clipboard. getPrimaryClip(). getItemAt( 0);             CharSequence pasteData = item. getText();        }   } }
开发APP关于Activity数据传递机制
 
数据传递机制主要有以下3种。使用Activity系统方法传递数据。使用自定义方法传递数据。使用广播消息传递数据。使用广播消息传递数据的示例代码如下:public static void registerApiListener( Context context, BroadcastReceiver receiver, String actionId) {         LocalBroadcastManager. getInstance( context). registerReceiver (receiver, new IntentFilter (actionId)); } private void sendResponseData( Response<?> response) {       Intent intent = new Intent( API_ ACTION_ RAW_ RESPONSE);       intent. putExtra( API_ RESPONSE_ OBJECT, response);       LocalBroadcastManager. getInstance( this). sendBroadcast( intent); } @Override public void onReceive( Context context, Intent intent) {             Serializable dataObject = intent. getExtras(). getSerializable( ApiService. API_ RESPONSE_ OBJECT);
  Object responseObject = ((Response< Object>) dataObject). getResponseObject();         processResponseObject( context, responseObject);       LocalBroadcastManager. getInstance( context). unregisterReceiver( this); }
用这种方式可以解决类似A->B->C->A这样多级Activity/Fragment间使用startActivityForResult/onActivityResult这种机制无法传递数据的问题。好了,APP开发公司本文关于“开发APP关于Activity数据传输的三种形式与代码分享”知识就到这里,谢谢关注,博纳网络编辑整理。
 

当前文章链接:/construction/appkaifa/2433.html
如果您觉得案例还不错请帮忙分享:

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【qin@198bona.com 】,我们在确认后,会立即删除,保证您的版权。