【发布时间】:2015-02-12 13:55:20
【问题描述】:
我正在尝试将Class.forName() 方法与我的文件名一起使用。
在我的情况下,它是“MainActivity”但是当我尝试在 try catch 块中使用它时,它找不到名为 MainActivity 的类,当我调试时,我发现
MainActivity.class.getName() 给了我 com.example.test.secondproject.MainActivity
所以我在Class.forName("com.example.test.secondproject.MainActivity") 中使用它作为我的论点,它工作得很好,
我怎样才能让它只与 Class.forName("MainActivity") 一起工作,或者它是预期的行为
try {
Log.i(TAG,"try main activity "); showNotification(context,intent.getStringExtra("message").toString(),Class.forName("MainActivity"));
} catch (ClassNotFoundException e) {
Log.i(TAG,"try fail error: "+ e);
}
这是错误:java.lang.ClassNotFoundException: MainActivity
显示通知;
public static void showNotification(Context context,String message,final Class ActivityToOpen) {
PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
new Intent(context, ActivityToOpen), 0);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("My notification")
.setContentText(message);
mBuilder.setContentIntent(contentIntent);
mBuilder.setDefaults(Notification.DEFAULT_SOUND);
mBuilder.setAutoCancel(true);
NotificationManager mNotificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(1, mBuilder.build());
}
【问题讨论】:
-
请显示更多关于你正在做的事情的代码。
-
如果您有两个类——例如
one.MainActivity和two.MainActivity——如果只是用Class.forName("MainActivity")询问,JRE 应该选择哪一个?换句话说:这是预期的行为。 -
@barq 添加了所有上下文
标签: java android class android-intent android-activity