使用intent send在不工作onRestart()的应用程序之间传递字符串

时间:2014-04-03 12:30:47

标签: android android-intent

我正在尝试在2个应用程序之间传递一个字符串但我收到字符串时遇到了麻烦。到目前为止,如果接收应用程序未打开,我已经开始工作,但如果以前没有打开则不行。

这似乎是OnRestart()函数,我正在尝试处理传入的字符串。与OnCreate()不同,我用于启动处理传入的字符串,它返回SEND作为其意图。在下面的代码中,虽然OnRestart()按照意图返回MAIN。

@Override
protected void onRestart()
{
    super.onRestart();
    Log.v("VM","ONRESTART");
    // Get intent, action and MIME type
    Intent intent = getIntent();
    Log.v("VM","INTENT: " + getIntent());
    String action = intent.getAction();
    Log.v("VM","ACTION: " + action);
    String type = intent.getType();
    Log.v("VM","TYPE: " + type);

    if (Intent.ACTION_SEND.equals(action) && type != null) 
    {
        Log.v("VM","ACTION INTENT");
        if ("text/plain".equals(type)) 
        {
            Log.v("VM","HANDLE TEXT");
            handleSendText(intent); // Handle text being sent
        } 
    } 
}

有没有办法获得正确的意图,还是我需要用广播接收器或其他方式做另外的方式?

1 个答案:

答案 0 :(得分:0)

你可以覆盖那个

的onNewIntent方法
@Override
protected void onNewIntent(Intent intent) {
    // TODO Auto-generated method stub

    if (intent.getAction() == Intent.ACTION_SEND) {

        //your code will be go here

    }
}

你可以在这里获得更多信息

http://developer.android.com/reference/android/app/Activity.html#onNewIntent%28android.content.Intent%29