我正在尝试编写一个测试程序例程,它将运行我的应用程序中的许多方法。我有一个名为Friends的Acivity。我想启动它,然后运行几个方法。这是从另一个类“WebCall”完成的,当它发生时从GCM广播接收器调用。
我想在WebCall中写的是......
private void systemTest(){
Intent intent = null;
intent = new Intent(Main.getMSContext(),Friends.class);
Main.getMSContext().startActivity(intent);
Class c = getSomethingorOther(Friends); // I need a class instance to run the method?
c.sendTxt(1);
c.sendEmail(1);
c.deleteFriend(1);
c.finish();
我看到的难点是startActivity(intent)不返回类实例。我希望它隐藏在某处。
答案 0 :(得分:1)
从另一个类开始一个活动然后使用它的实例并不是一个好习惯,因为如果你从另一个活动开始一个活动,那么你当前的活动将停止工作,你无法保证你的线路将被执行。
最好在意图上启动和活动并使用putExtra()
:
Intent intent = new Intent(Main.getMSContext(),Friends.class);
Bundle b = new Bundle(); // Create a new bundle
b.putBoolean("test", true); // Put test=true inside
intent.putExtras(b); // Add the bundle to the intent
Main.getMSContext().startActivity(intent);
在新活动的onCreate()
内,使用以下内容检查是否需要测试:
Bundle b = getIntent().getExtras();
if (b != null) {
bool test = b.getBool("test");
if (test) {
sendTxt(1);
sendEmail(1);
deleteFriend(1);
finish();
}
}