<pre class="java" name="code">
//兼容安卓的系统package cn.com.likeshow;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import myvm.test.myActivity;
/*
* author 张章
*
* time 2014-5-12
*
*/
public class Activity {
private Bundle bundle;
//savedInstanceState用于activity见传递參数
protected void onCreate(Bundle savedInstanceState) {
this.bundle=savedInstanceState;
}
protected Intent getIntent()
{
return bundle.getIntent();
}
protected static Context getApplicationContext()
{
return null;
}
protected void startActivity(Intent intent) {
//通过反射完成对象创建
Activity activity=intent.getPreActivity();
Class class1=intent.getAfterActivity();
Constructor con=class1.getConstructors()[0];
try {
Activity activity2=(Activity) con.newInstance();
//把Bundele最为參数传入,调用getIntent()时会从bundle中获取activity间传递的參数
activity2.onCreate(new Bundle(intent));
} catch (Exception e) {
e.printStackTrace();
}
}
protected void setContentView(int id) {
System.out.println("setContentView " + id);
}
protected boolean onCreateOptionsMenu(Menu menu) {
return true;
}
protected boolean onOptionsItemSelected(MenuItem item) {
return true;
}
protected static class Toast
{
private Context applicationContext;
private static String s;
private int t;
private Toast(Context applicationContext2, String string, int i) {
this.applicationContext=applicationContext2;
this.s=string;
this.t=i;
}
public static Toast makeText(Context applicationContext,String string, int i)
{
//实际安卓中不一定是返回Toast对象,该事例仅仅用于模拟安卓实现原理
return new Toast(applicationContext,string,i);
}
public static void show()
{
int len=s.length()+2;
for(int i=0;i<len;i++)
System.out.print("*");
System.out.print("\n*" +s+"*\n");
for(int i=0;i<len;i++)
System.out.print("*");
System.out.println();
}
}
public static void main(String[] args) {
//方便起见,假定默认启动myActivity,当然能够通过读取配置文件,知道默认启动的Activity
new myActivity().onCreate(new Bundle(null));
}
}
package cn.com.likeshow;
public class Bundle {
private Intent intent;
public Bundle (Intent intent)
{
this.intent=intent;
}
public Intent getIntent() {
return intent;
}
public void setIntent(Intent intent) {
this.intent = intent;
}
}
package cn.com.likeshow;
import java.io.ObjectInputStream.GetField;
import java.util.HashMap;
import java.util.Map;
public class Intent {
private Map<String ,Object>map;
private Activity activity;
private Class class1;
public Intent(Activity activity, Class<? extends Activity> class1)
{
map=new HashMap<String, Object>();
this.activity=activity;
this.class1=class1;
}
public void putExtra(String str,Object obj){
map.put(str, obj);
}
public Object getExtra(String str){
return map.get(str);
}
public Activity getPreActivity()
{
return activity;
}
public Class getAfterActivity()
{
return class1;
}
}
//==========简易演示样例安卓代码例如以下=========================================================
package myvm.test;
import cn.com.likeshow.Activity;
import cn.com.likeshow.Bundle;
import cn.com.likeshow.Intent;
public class myActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("myActivity 启动");
setContentView(1);
Toast.makeText(getApplicationContext(),"哈哈Toast",0).show();
Intent intent=new Intent(myActivity.this, SecondActivity.class);
intent.putExtra("myActivity", "hello 2activity");
startActivity(intent);
Toast.makeText(getApplicationContext(),"SecondActivity启动完成",0).show();
Intent intent2=new Intent(myActivity.this, ThirdActivity.class);
intent2.putExtra("1", "hello 3activity");
startActivity(intent2);
Toast.makeText(getApplicationContext(),"ThirdActivity启动完成",0).show();
}
}
package myvm.test;
import cn.com.likeshow.Activity;
import cn.com.likeshow.Bundle;
import cn.com.likeshow.Intent;
public class SecondActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("SecondActivity 启动");
setContentView(2);
Intent intent=getIntent();
Object object=intent.getExtra("myActivity");
Object object2=intent.getExtra("1");
System.out.println("SecondActivity "+object);
System.out.println("SecondActivity "+object2);
Toast.makeText(getApplicationContext(),"SecondActivity运行完成",0).show();
}
}
package myvm.test;
import cn.com.likeshow.Activity;
import cn.com.likeshow.Bundle;
import cn.com.likeshow.Intent;
public class ThirdActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.out.println("ThirdActivity 启动");
setContentView(3);
Intent intent=getIntent();
Object object=intent.getExtra("myActivity");
Object object2=intent.getExtra("1");
System.out.println("ThirdActivity "+object);
System.out.println("ThirdActivity "+object2);
Toast.makeText(getApplicationContext(),"ThirdActivity运行完成",0).show();
}
}
==========效果图 =================