標籤:android class blog c java tar
http://www.2cto.com/kf/201203/122910.html
Android SDK中有這樣一個API:
public abstract Intent getLaunchIntentForPackage (String packageName)
如果packageName存在返回入口Intent, startActivity(Intent)可以啟動應用,否則返回nullimport android.app.Activity;
下面有個小樣本:
[java] view plaincopy
- import android.content.Intent;
- import android.content.pm.PackageInfo;
- import android.content.pm.PackageManager;
- import android.os.Bundle;
- import android.view.View;
-
- public class Main extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- PackageManager packageManager = getPackageManager();
- Intent intent=new Intent();
- intent =packageManager.getLaunchIntentForPackage("pkgName");
- if(intent==null){
- System.out.println("APP not found!");
- }
- startActivity(intent);
- }
- }
- //-----啟動我們自身寫的程式------------------
- mButton01.setOnClickListener(new Button.OnClickListener(){
- public void onClick(View v) {
- //-----核心部分----- 前名一個參數是應用程式的包名,後一個是這個應用程式的主Activity名
- Intent intent=new Intent();
- intent.setComponent(new ComponentName("com.droidnova.android.games.vortex",
- "com.droidnova.android.games.vortex..Vortex"));
- startActivity(intent);
- }
- });
- //-----啟動系統內建的應用程式------------------
- mButton02.setOnClickListener(new Button.OnClickListener(){
- public void onClick(View v) {
- Intent intent=new Intent();
- intent.setComponent(new ComponentName("com.android.calendar", "com.android.calendar.LaunchActivity"));
- startActivity(intent);
- }
- });
//這些代碼是啟動另外的一個應用程式的主Activity,當然也可以啟動任意一個Activity
ComponentName componetName = new ComponentName(
//這個是另外一個應用程式的包名
"com.poynt.weibo",
//這個參數是要啟動的Activity
"com.poynt.weibo.ui.IndexActivity");
Android在一個應用中啟動另一個應用的Activity
為 activity 添加 intent-filter 的定義。
通過測試發現,只要添加如下語句,activity就可以被正常調用:
<intent-filter>
<action android:name=""/>
</intent-filter>
相應的啟動代碼為:
Intent intent = new Intent();
intent.setClassName(<package name>, <class name>);
startActivity(intent);