如何使用从Service传递的intent启动Activity

时间:2015-04-05 00:03:48

标签: android android-intent android-activity

我有一个Service,它在字符串变量中获取一个类名,并使用以下代码传递给sharedpreferences:

    settings.edit().putString("class", activityClass).commit();

`

该服务然后启动我的passprompt活动,该活动需要读取String并启动存储在其中的活动。

     try {

           SharedPreferences settings = getApplicationContext().getSharedPreferences("data", Context.MODE_PRIVATE);
           String c = settings.getString("class", "null");
           Intent newIntent= new Intent(passprompt.this, Class.forName(c));
           newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           startActivity(newIntent);

        }
       catch  (ClassNotFoundException e) {
       }

但预期的活动未按预期启动

1 个答案:

答案 0 :(得分:0)

你可以试试这个,

  1. 如果您的应用中有此活动 获取完全限定的Activity类名称,并将其置于intent中,如下所示,

        Intent newIntent= new Intent(Passprompt.this, Class.forName("your activity class name"))); 
        newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(newIntent);
    
  2. 如果这是另一个应用程序中的活动

     Intent intent = new Intent(Intent.ACTION_MAIN); 
     intent.setComponent(new ComponentName("packagename", "packagename.launh_activity_name")); 
     startActivity(intent);