从通知启动活动并自动运行一些代码

时间:2018-02-02 16:56:02

标签: android android-intent android-activity notifications

需要一些帮助。 我有一个通知,当触摸打开一个活动时。 在该活动中,我有一个带有某些类型视图的地图(默认情况下,我不需要按一个按钮来获取额外的视图)。 我想要做的是每当我触摸通知我的活动打开一个特定的视图(我需要按一个视图)。

换句话说,我需要将我的活动打开并自动运行导致一个特定视图的代码,但仅限于活动从我的通知开始。

我的通知代码:

Intent notificationIntent = new Intent(getApplicationContext(), mapa.class);

我需要运行以在加载活动后获取我的视图的代码:

   mLocationDisplay.setAutoPanMode(LocationDisplay.AutoPanMode.RECENTER);
                if (!mLocationDisplay.isStarted())
                    mLocationDisplay.startAsync();
                break;

1 个答案:

答案 0 :(得分:0)

你可以通过传递意图中的值来实现这一点

Intent notificationIntent = new Intent(getApplicationContext(), mapa.class);
notificationIntent.putExtra("IS_FROM_NOTIFICATION",true);

以及您的活动

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent intent = getIntent();
        boolean isFromNotification = 
        intent.getBooleanExtra("IS_FROM_NOTIFICATION",false);
        if (isFromNotification){
            //call the method
mLocationDisplay.setAutoPanMode(LocationDisplay.AutoPanMode.RECENTER);
                if (!mLocationDisplay.isStarted())
                    mLocationDisplay.startAsync();
        }
    }

此行表示intent.getBooleanExtra("IS_FROM_NOTIFICATION",false);

获取使用键"IS_FROM_NOTIFICATION"传递的值(如果值存在)返回值,否则返回默认值,在此示例中我选择默认值为false