2015-04-05 75 views
0

传递意图发射活动我有一个Service这在一个字符串变量获得一个类名,并使用此代码传递到sharedpreferences:如何使用从服务

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

`

服务然后将启动我的passprompt活动,它需要读取字符串并启动存储在里面的活动。

 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) { 
     } 

然而,计划的活动预计不会

回答

0

你可以试试这个时候推出,

  1. 如果在您的应用程序 本次活动得到了完全合格的Activity类的名字,并把它意图额外如下,

    Intent newIntent= new Intent(Passprompt.this, Class.forName("your activity class name"))); 
        newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        startActivity(newIntent); 
    
  2. 如果这是另一个applicatino

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

感谢大卫内的活动,在的Class.forName(),意向尚未宣布这就是为什么我有问题,我应该做2个意图对象 - 一个用于检索字符串,另一个用于启动新的活动? – user3343264 2015-04-05 11:04:51

+0

是的,你需要,接受,如果它帮助你。 – 2015-04-05 11:11:19

+0

我应该在新意图的参数中使用什么? (currentactivity,x activity) – user3343264 2015-04-05 11:16:07