从另一个包调用活动

时间:2013-01-08 05:56:06

标签: android view android-activity

我在com.qz.launchfoneclayactivity包中有一个活动。我需要在com.qz.Test包中启动一个活动。我尝试了设置组件并使用了SetClass但没有帮助......下面是我的com.qz.launchfoneclayactivity的清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.qz.launchfoneclayactivity"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

         <activity android:name="com.x.test.StartUpActivity" />// This is the Activity name in another package
        <activity
            android:name="com.qz.launchfoneclayactivity.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
下面的

是我的第二个包

的清单
<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.qz.test" 
    android:versionCode="xx" 
    android:versionName="x.x.x">
    ......................


<activity android:name=".StartUpActivity"
            android:launchMode="singleTop" 
            android:excludeFromRecents="true"
            android:configChanges="orientation|screenSize|keyboardHidden"                   
            android:theme="@android:style/Theme.Translucent.NoTitleBar" >                        
            <intent-filter>                        
                <action android:name="android.intent.action.VIEW" />                        
            </intent-filter>                              
            </activity> 

2 个答案:

答案 0 :(得分:1)

尝试从您的应用程序中打开Android应用程序活动:

Intent intent=new Intent(Intent.ACTION_VIEW);
intent.setComponent(new ComponentName("com.qz.test",
                            "com.qz.test.StartUpActivity"));
startActivity(intent);

答案 1 :(得分:0)

如果包属于不同的应用程序,请在清单文件中使用android:exported标记活动。然后外部包可以使用Intent及其完整的类名来启动它。

Intent start = new Intent(this,<target_class_name>);
startActivity(start);