zoukankan      html  css  js  c++  java
  • 一手遮天 Android

    项目地址 https://github.com/webabcd/AndroidDemo
    作者 webabcd

    一手遮天 Android - ipc(跨进程通信): ContentProvider

    示例如下:

    /ipc/ContentProviderDemo1.java

    /**
     * 本例用于演示如何调用 ContentProvider
     * 正常演示此示例需要安装 AndroidDemoIpc 项目生成的 app
     *
     * 注:本例调用的 ContentProvider 的具体实现请参见 AndroidDemoIpc 项目中的 ContentProviderDemo1.java
     */
    
    package com.webabcd.androiddemo.ipc;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.database.Cursor;
    import android.net.Uri;
    import android.os.Bundle;
    import android.widget.TextView;
    
    import com.webabcd.androiddemo.R;
    
    public class ContentProviderDemo1 extends AppCompatActivity {
    
        private TextView mTextView1;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_ipc_contentproviderdemo1);
    
            mTextView1 = findViewById(R.id.textView1);
    
            sample();
        }
    
        private void sample() {
            String message = "";
            Cursor cursor = null;
            try {
                // 从指定 url 的 ContentProvider 中查询数据
                Uri uri = Uri.parse("content://cn.webabcd.contentProviderDemo1/api");
                cursor = this.getContentResolver().query(uri, null, null, null, null);
    
                if (cursor == null) {
                    message = "无数据";
                } else {
                    // 从 cursor 中获取数据
                    while (cursor.moveToNext()) {
                        String key = cursor.getString(cursor.getColumnIndex("key"));
                        String value = cursor.getString(cursor.getColumnIndex("value"));
                        message += key + ":" + value + "
    ";
                    }
                }
            } catch (Exception e) {
                message = e.toString();
            } finally {
                // 关闭 cursor
                if (cursor != null) {
                    cursor.close();
                }
            }
    
            mTextView1.setText(message);
        }
    }
    

    /layout/activity_ipc_contentproviderdemo1.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
    </LinearLayout>
    

    项目地址 https://github.com/webabcd/AndroidDemo
    作者 webabcd

  • 相关阅读:
    C#动态执行代码
    C#的动态编译执行
    Win7/Vista激活后添加grub引导Linux最简单方法!无需命令行!
    乔布斯:关于 Flash 的思考
    I want to live in a honest country
    twitter bbs
    my follow rule on twitter
    blog will be repleace by twitter?
    blog Prediction
    也说说对blog是否需要静态页面的一点看法
  • 原文地址:https://www.cnblogs.com/webabcd/p/android_ipc_ContentProviderDemo1.html
Copyright © 2011-2022 走看看