使用文件共享实现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
- 使用文件共享实现IPC
- Android IPC 文件共享
- IPC通信之共享内存(文件锁)Java实现
- Android 中的 IPC 方式二:使用文件共享
- android IPC方式 Bundle 文件共享 Messenger
- 使用Messenger实现IPC
- 使用AIDL实现IPC
- Boost IPC(interprocess)实现内存共享
- linux SysV IPC shm共享内存实现
- 共享内存+信号量+消息队列实现IPC
- ipc$共享
- 使用批处理命令实现文件共享
- 使用C#实现对文件的共享
- IOS_使用SMB实现局域网文件共享
- iOS_使用SMB实现局域网文件共享
- 使用内存文件映射实现共享内存
- IPC机制--使用文件通信
- 使用Messenger实现IPC通信
- My97DatePicker
- Codeforces Round #209 (Div. 2) A.Table
- java list<map> 排序
- CENTOS6.8安装配置svn
- String,StringBuffer,StringBuild区别(个人总结笔记)
- 使用文件共享实现IPC
- html5 meta详解
- yum出错Error: Cannot find a valid baseurl for repo: base
- .NET框架学习:浅谈ASP.NET的Postback
- unity 动态合并材质达到减少Draw Calls的方法
- 深度增强学习方向论文整理
- maven创建web项目
- 韩国着手更新比特币交易所法规
- Golang 的二分查找测试