Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从外部应用程序启动活动,缺少附加项_Android_Android Intent_Android Activity - Fatal编程技术网

Android 从外部应用程序启动活动,缺少附加项

Android 从外部应用程序启动活动,缺少附加项,android,android-intent,android-activity,Android,Android Intent,Android Activity,我的应用程序中有一个小部件,应该可以使用startActivity()将它添加到应用程序中,并且我还需要传递一些附加信息,以Intent启动活动。但是在onCreate()中,包是空的!?! 我试图解决这个问题,有人通过重写onNewIntent()解决了这个问题,因为如果我的活动的实例已经存在,可以调用它,但在这方面也没有成功,因为onNewIntent()从未被调用。那么这里发生了什么?我只想从我的应用程序外部启动一个活动,并传递一些带有意图的额外信息 Intent intent= new

我的应用程序中有一个小部件,应该可以使用
startActivity()
将它添加到应用程序中,并且我还需要传递一些附加信息,以
Intent
启动活动。但是在
onCreate()
中,
是空的!?! 我试图解决这个问题,有人通过重写
onNewIntent()
解决了这个问题,因为如果我的活动的实例已经存在,可以调用它,但在这方面也没有成功,因为
onNewIntent()
从未被调用。那么这里发生了什么?我只想从我的应用程序外部启动一个活动,并传递一些带有
意图的额外信息

Intent intent= new Intent(context, SmsAlarm.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(SWITCH_FRAGMENT_REQUEST, true);

context.startActivity(intent);

正如我之前所说的,我的活动以这种方式开始,但我失去了我需要的额外活动。有人能告诉我是什么以及为什么会发生这种情况。

从小部件打开活动意图的正确方法是使用。这样做时不应该有任何问题

设置挂起内容,如中所述:

现在,像平常一样多拿一些:

Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
    mMyExtra = extras.getString("MY_EXTRA", null);
}
MY_EXTRA应该是某个地方的常量。

检查此链接。

对于另一个活动,在onCreate方法中获取必须使用的字符串

saveMe = getIntent().getExtras().getString("string");
如果有布尔值,可以使用

boolean defaultValue = false;
boolean yourValue = getIntent().getBooleanExtra(YOUR_EXTRA, defaultValue);
到Developer.android


您正试图通过
getIntent()
获取意图,并通过
getIntent().getExtras()
而不是
savedInstanceState
包获取意图,对吗?如何读取SWITCH\u FRAGMENT\u请求值?将代码张贴在您试图接收额外信息的简短答案的地方。这样做很有魅力!
boolean defaultValue = false;
boolean yourValue = getIntent().getBooleanExtra(YOUR_EXTRA, defaultValue);