當前位置:編程學習大全網 - 編程語言 - android如何動態加載類?

android如何動態加載類?

android如何動態加載類-應用程序插件技術

轉自:beyondsoft.activity

進口?Java . lang . reflect . constructor;

進口?Java . lang . reflect . invocationtargetexception;

進口?java.lang.reflect .方法;

進口?dal vik . system . dex class loader;

進口?Android . app . activity;

進口?Android . content . pm . package info;

進口?Android . OS . bundle;

進口?Android . util . log;

公?班級?PlugActivity?延伸?活動?{

私人?班級?mActivityClass

私人?對象?mActivityInstance

班級?localClass

私人?對象?實例;

@覆蓋

受保護?作廢?onCreate(捆綁?savedInstanceState)?{

super . oncreate(savedInstanceState);

捆綁?paramBundle?=?新的?bundle();

param bundle . put boolean(" KEY _ START _ FROM _ OTHER _ ACTIVITY ",真);

paramBundle.putString("str ",“plug activity”);

字符串?dexpath?=?"/SD card/fragment project . apk ";

字符串?dexoutputpath?=?"/mnt/SD card/";

LoadAPK(paramBundle,?dexpath,?dex output path);

}

@覆蓋

受保護?作廢?onStart()?{

super . onstart();

方法?開始;

試試?{

開始?=?local class . get method(" onStart ");

start.invoke(實例);

}?接住?(例外?e)?{

//?托多?自動生成?接住?街區

e . printstacktrace();

}

}

@覆蓋

受保護?作廢?onResume()?{

//?托多?自動生成?方法?煙蒂

super . on resume();

方法?簡歷;

試試?{

簡歷?=?local class . get method(" on resume ");

resume.invoke(實例);

}?接住?(例外?e)?{

//?托多?自動生成?接住?街區

e . printstacktrace();

}

}

@覆蓋

受保護?作廢?onPause()?{

super . on pause();

方法?暫停;

試試?{

暫停?=?local class . get method(" on pause ");

pause.invoke(實例);

}?接住?(例外?e)?{

e . printstacktrace();

}

}

@覆蓋

受保護?作廢?onStop()?{

super . onstop();

試試?{

方法?停下來?=?local class . get method(" on stop ");

stop.invoke(實例);

}?接住?(例外?e)?{

e . printstacktrace();

}

}

@覆蓋

受保護?作廢?onDestroy()?{

//?托多?自動生成?方法?煙蒂

super . on destroy();

試試?{

方法?德斯?=?local class . get method(" on destroy ");

des.invoke(實例);

}?接住?(例外?e)?{

//?托多?自動生成?接住?街區

e . printstacktrace();

}

}

  • 上一篇:夢見自己編程鬼的預兆
  • 下一篇:天蠍計劃的業界規範
  • copyright 2024編程學習大全網