开发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数据传输的三种形式与代码分享”知识就到这里,谢谢关注,博纳网络编辑整理。