Android在当前的topActivity中运行一个方法

时间:2014-01-13 18:12:28

标签: android android-activity

我正在尝试编写一个测试程序例程,它将运行我的应用程序中的许多方法。我有一个名为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)不返回类实例。我希望它隐藏在某处。

1 个答案:

答案 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();
    }
}