使用文件共享实现IPC

来源:互联网 发布:00截断原理 php 编辑:程序博客网 时间:2024/06/05 20:39
FourthActivity位于全局进程中android:process="com.zhoujian.android.romote"FifthActivity位于默认进程中默认进程名为包名:com.zhoujian.android在FourthActivity把数据写入文件中,在FifthActivity中获取文件中的数据,以此实现进程间通信需要的权限<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>package com.zhoujian.android.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.widget.Button;import com.zhoujian.android.R;import com.zhoujian.android.bean.Person;import java.io.File;import java.io.FileOutputStream;import java.io.ObjectOutputStream;import butterknife.ButterKnife;import butterknife.InjectView;/** * Created by zhoujian on 2016/11/28. */public class FourthActivity extends Activity {    @InjectView(R.id.bt_start)    Button mBtStart;    //option+command+k   对生命周期方法进行排序    @Override    protected void onCreate(Bundle savedInstanceState)     {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_fourth);        ButterKnife.inject(this);        clickEvent();        //把数据写入文件中        writeToFile();    }    private void writeToFile()    {        new Thread()        {            @Override            public void run()            {                Person person = new Person(true,2,"zhoujian");                String path =  Environment.getExternalStorageDirectory().getPath()+"/cache/";                File f = new File(path);                if(!f.exists()){                    f.mkdirs();                }                File cacheFile = new File(path+"person.txt");                ObjectOutputStream out=null;                try                {                    out = new ObjectOutputStream(new FileOutputStream(cacheFile));                    out.writeObject(person);                    out.close();                }                catch (Exception e)                {                    e.printStackTrace();                }            }        }.start();    }    private void clickEvent()    {        mBtStart.setOnClickListener(new View.OnClickListener()        {            @Override            public void onClick(View view)            {                startActivity(new Intent(FourthActivity.this,FifthActivity.class));            }        });    }    @Override    protected void onRestart()     {        super.onRestart();    }    @Override    protected void onStart()     {        super.onStart();    }    @Override    protected void onResume() {        super.onResume();    }    @Override    protected void onPause()     {        super.onPause();    }    @Override    protected void onStop()     {        super.onStop();    }    @Override    protected void onDestroy()    {        super.onDestroy();    }}package com.zhoujian.android.activity;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.util.Log;import android.view.View;import android.widget.Button;import com.zhoujian.android.R;import com.zhoujian.android.bean.Person;import java.io.File;import java.io.FileInputStream;import java.io.ObjectInputStream;import butterknife.ButterKnife;import butterknife.InjectView;/** * Created by zhoujian on 2016/11/28. */public class FifthActivity extends Activity {    public static final String TAG = "FifthActivity";    @InjectView(R.id.bt_start)    Button mBtStart;    //option+command+k   对生命周期方法进行排序    @Override    protected void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_fifth);        ButterKnife.inject(this);        clickEvent();        readFromFile();    }    private void readFromFile()    {        new Thread(new Runnable()        {            @Override            public void run()            {                Person person = null;                String path =  Environment.getExternalStorageDirectory().getPath()+"/cache/";                File cacheFile = new File(path+"person.txt");                if(cacheFile.exists())                {                    ObjectInputStream in=null;                    try                    {                        in = new ObjectInputStream(new FileInputStream(cacheFile));                        person = (Person)in.readObject();                        Log.e(TAG,"person==="+person.toString());                        in.close();                    }                    catch (Exception e)                    {                        e.printStackTrace();                    }                }            }        }).start();    }    private void clickEvent()    {        mBtStart.setOnClickListener(new View.OnClickListener()         {            @Override            public void onClick(View view)             {            }        });    }    @Override    protected void onRestart() {        super.onRestart();    }    @Override    protected void onStart() {        super.onStart();    }    @Override    protected void onResume() {        super.onResume();    }    @Override    protected void onPause() {        super.onPause();    }    @Override    protected void onStop() {        super.onStop();    }    @Override    protected void onDestroy() {        super.onDestroy();    }}
0 0
原创粉丝点击