Android 从另一个包启动活动
我有一份清单:Android 从另一个包启动活动,android,android-intent,android-activity,packages,Android,Android Intent,Android Activity,Packages,我有一份清单: <manifest ... package="com.my"> <application ...> <activity ... android:name=".app.Run"> <intent-filter > <action android:name="android.intent.action.MAIN" /
<manifest ...
package="com.my">
<application ...>
<activity ...
android:name=".app.Run">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity ...
android:name=".app.Preferences"/>
<activity ...
android:name=".library.error.ErrorDialog"/>
</application>
</manifest>
<activity
android:name="com.mycompany.mainapplication.package1.SecondActivity"
android:label="Simple Math Questions" >
</activity>
或
不起作用
我有罪。。。我有罪…
我的
ErrorDialog
活动未公开:D您可以使用以下代码:
Intent myIntent= new Intent(FirstActivity.this,SecondActivity.class);
startActivity(myIntent);
如果一个类在另一个包中的同一个包中,则不会产生任何差异。只需确保导入该类即可
我在清单中使用了以下代码:
<manifest ...
package="com.my">
<application ...>
<activity ...
android:name=".app.Run">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity ...
android:name=".app.Preferences"/>
<activity ...
android:name=".library.error.ErrorDialog"/>
</application>
</manifest>
<activity
android:name="com.mycompany.mainapplication.package1.SecondActivity"
android:label="Simple Math Questions" >
</activity>
1。与应用程序清单文件相关
Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.run"/>
<activity android:name="app.run"/>
<activity android:name="library.error.ErrorDialog"/>
package app.run // Your Main Application Package Name
Activity:
Intent i = new Intent();
i.setClassName("app.run", "library.error.ErrorDialog"); //
startActivity(i);
Intent intent = new Intent();
intent.setComponent(new ComponentName("packagename whos activity u want to launch","classname.java"));
startActivity(intent);
在您的情况下
Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.run"/>
<activity android:name="app.run"/>
<activity android:name="library.error.ErrorDialog"/>
package app.run // Your Main Application Package Name
Activity:
Intent i = new Intent();
i.setClassName("app.run", "library.error.ErrorDialog"); //
startActivity(i);
Intent intent = new Intent();
intent.setComponent(new ComponentName("packagename whos activity u want to launch","classname.java"));
startActivity(intent);
创建两个不同的应用程序(包)后。转到第一个应用程序的清单文件并按如下方式编辑它:-- 现在,这里传递到intent的第一个参数是第二个应用程序的包名,第二个参数是要打开的活动的名称。 就这样。
PS:运行第一个应用程序 我用Intent和setClass解决了这个问题
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("packagewheretheactivityyouwantcallis", "packagewheretheactivityyouwantcallis.ActivityYouWantCall");
startActivity(intent);
不要忘记将您要调用的活动放入正在编写的活动清单中,如下所示:
<application
....>
<activity
android:name="packagewheretheactivityyouwantcallis.ActivityYouWantCall">
</activity>
</application>
检查这一点可能会有所帮助:使用意图清单包是:“com.my”。这段代码很有用。尽管我们必须考虑空间限制。
<application
....>
<activity
android:name="packagewheretheactivityyouwantcallis.ActivityYouWantCall">
</activity>
</application>