2011-04-04 45 views

回答

4

我打算假设你确实意味着你想在你的应用中启动另一个应用,而不是另一个Activity。

然后有两种方法可以做到这一点。您可以尝试使用隐式意图,根据文档,(隐式)意图是“要执行的操作的抽象描述”,该意思是“提供在不同应用程序中的代码之间执行延迟的运行时绑定”。有点像尝试通过使用接口的线路启动方法。您无法确定所启动的对象的类只是它可以处理您声明的操作和类别。

第二种方法是明确的意图,这更像是通过电线进行具体的呼叫。如果你知道这个应该可以工作的包和类名称。

Intent intent = new Intent(Intent.ACTION_MAIN); 
    //intent.putExtra("plain_text", "Testing"); 
    intent.setClassName("packagename", "packagename.ClassName"); // Explicit Intent 
    try { 
     startActivity(intent); 
    } 
    catch (Exception e) 
    { 
     Log.d(TAG","onCreate",e); 
    } 
} 

您可以使用标志添加额外的信息,这取决于您的需求以及您尝试从哪里启动。

JAL

2

您可能需要更具体一点关于您正在做的事情。如果你想要做的是,比如说,启动从您的主要活动的另外一个活动,像这样的工作:

Intent intent = new Intent(this, OtherActivity.class); 
intent.putExtra("key", "data"); //put any data you want to pass into the new activity 
startActivity(intent); 

然后只是确保你把新的活动在您的清单如下:

<activity android:name=".OtherActivity" 
     android:label="@string/other"/> 

如果你的目标是别的东西,那么你应该对你想要做的事情有具体的了解。

3

从您的应用程序启动外部活动是使用与您正在使用的稍有不同的方法完成的。你需要create an intent with a given action。例如,推出的意图来从画廊的形象是这样的:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("image/*"); 
startActivityForResult(intent, IMAGE_PICK); 

请注意,您没有明确定义活动被加载,而要执行的动作的类型。然后,Android将选择(或让用户选择)一个已注册的活动来处理这种运行意图。

相关问题