我的意图没有启动所需的活动

时间:2014-06-09 12:21:49

标签: android android-intent

我trrigger and intent如下: -

Intent intent = new Intent();
intent.setClassname(packagename, activity path for my activity say 'xyz');
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);

对于我的活动(xyz)我已在其清单文件中导出=“true”。

但是这个意图并没有启动所需的活动(xyz),它只在新窗口中显示我的活动的标题,然后它显示了Settins活动。

我不确定问题出在哪里。 我的活动都在不同的包中。 请帮忙

4 个答案:

答案 0 :(得分:1)

活动一:

Intent i = new Intent(One.this, Two.class);
//i.putExtra("result", data); //optional if you want pass some data
startActivity(i);

//optional to get data:

活动二:

Intent intent = getIntent();
String text = "";
if (intent.hasExtra("result")) {
   text = intent.getStringExtra("result");
} else {
    // no extras for result available.
}

答案 1 :(得分:0)

以这种方式尝试:

Intent intent = new Intent(CurrentActicity.this, TargetActivity.class);

然后设置所需的标记并调用startActivity();

答案 2 :(得分:0)

设置好旗帜

Intent i = new Intent(this.getClass(), xyz.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);

请注意使用addFlags而不是setFlags,因为setFlags将覆盖所有现有标志。

答案 3 :(得分:0)

啊,最后我得到了解决这个问题.. 有一些错误的联系正在造成问题。 所以我在AndroidManifest文件中添加了元数据,用于我打算通过意图启动的活动。

这样的事情: -

<activity android:name="abc$xyz"
    <meta-data android:name="com.vivek.abc.FRAGMENT_CLASS"
        android:value="com.vivek.abc.xyz" />
    <meta-data android:name="com.vivek.abc.PARENT_FRAGMENT_CLASS"
        android:value="the parent activity name" />
</activity>

这对我来说非常有用。

感谢所有试图提供帮助的人:)