切换活动而不使用Intent

时间:2012-06-15 18:09:54

标签: android android-intent singleton

我正在开展一个项目并让我的活动通过Intents传递彼此的信息。但是,我最近决定使用swithc并使用Singleton方法并使用Application类来保存我的所有数据。

我现在有点困惑:如何在没有意图的情况下开始我的活动?这是我切换之前的一个电话......

    public boolean onOptionsItemSelected( MenuItem item ) {
    switch( item.getItemId() ) {
    case R.id.connect:
        startActivityForResult( new Intent( this, DeviceList.class ), REQUEST_CONNECT_DEVICE  );
        return true;

如果不使用意图启动DeviceList类,我会将其更改为什么?

3 个答案:

答案 0 :(得分:9)

你不是。使用意图开始您的活动。这就是Android的设计方式。

答案 1 :(得分:3)

是的,你可以。首先,您需要扩展ActivityGroup

public class Activity1 extends ActivityGroup

然后,你需要在该类中创建一个方法来替换内容视图,在本例中是Activity1

public void replaceContentView(String id, Intent newIntent) {
    View view = getLocalActivityManager().startActivity(id,newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) .getDecorView(); 
    setContentView(view);   
}

如果要从Activity1启动Activity2,

Intent activity2 = new Intent(this, Activity2.class);
replaceContentView(Activity2.class.getName(), activity2 );

您甚至可以从Activity2

启动Activity3
Intent activity3 = new Intent(getParent().getApplicationContext(), Activity3.class);
Activity1 parent = (activity3 ) getParent();
parent.replaceContentView(Activity3.class.getName(), activity3 );

希望这可以提供帮助

P.S:您可以参考this link

答案 2 :(得分:1)

在两个活动之间传递数据不仅仅是意图的滚动..它传递了其他必须要求的信息,这对于创建像Context,包信息等活动来说是必须的

按照link

的命令

意图是bstract description of an operation to be performed