其他软件包中的Android调用活动不';行不通
我正试图在另一个包中开始一项活动,我已经看到了很多关于这个主题的答案,但我发现的答案似乎对我不起作用 以下是我如何称呼其他活动:其他软件包中的Android调用活动不';行不通,android,package,start-activity,Android,Package,Start Activity,我正试图在另一个包中开始一项活动,我已经看到了很多关于这个主题的答案,但我发现的答案似乎对我不起作用 以下是我如何称呼其他活动: Intent intent = new Intent(); intent.setClassName("com.packageroot.package2", "com.packageroot.package2.MainActivity"); context.startActivity(intent); 这是我的清单: <manifest xmlns:andro
Intent intent = new Intent();
intent.setClassName("com.packageroot.package2", "com.packageroot.package2.MainActivity");
context.startActivity(intent);
这是我的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.packageroot" >
<application
<activity
android:name=".package1.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.packageroot.package2.MainActivity"
android:label="@string/title_activity_main"
android:theme="@style/AppTheme"
android:parentActivityName=".package1.MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".package1.MainActivity"/>
</activity>
您可以尝试将包添加到依赖项下的build.gradle文件中:
dependencies {
compile 'com.packageroot.package2'
}
更改此行:
intent.setClassName("com.packageroot.package2", "com.packageroot.package2.MainActivity");
到
第一个参数是“包名”。
如果你的意图贯穿于软件包,这就是你应该做的。
在你的舱单上
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:exported="true">//got to declare this
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="YOUR ACTION NAME" />
//At least one category,use DEFAULT if you don't have one
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
对我来说,最好的解决办法就是控制后退按钮
@Override
public void onBackPressed() {
Intent intent = new Intent(CurrentActivity.this, SecoundActivity.class);
startActivity(intent);
finish();
}
Intent intent = new Intent();
intent.setAction(YOUR ACTION NAME);
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent);
@Override
public void onBackPressed() {
Intent intent = new Intent(CurrentActivity.this, SecoundActivity.class);
startActivity(intent);
finish();
}