gpt4 book ai didi

java - Activity.class 和 Class 类的区别

转载 作者:行者123 更新时间:2023-12-01 20:53:44 25 4
gpt4 key购买 nike

我正在创建通知 Intent ,根据条件打开两个 Activity 之一。按预期工作,因为我拥有此操作所需的所有 Intent 标志。

我尝试通过提取新的 IntentClass 来优化我的方法流程,因此优化后的代码如下所示:

Class ActivityClass;

if (siteId > 0) {
//...
ActivityClass = DetailActivity.class;
} else {
//...
ActivityClass = MainActivityWithMenu.class;
}

Intent notificationIntent = new Intent(appContext, ActivityClass);

但是后来我的通知停止打开 Activity ,所以我将其更改为:

Intent notificationIntent = null;

if (siteId > 0) {
notificationIntent = new Intent(appContext, DetailActivity.class);
} else {
notificationIntent = new Intent(appContext, MainActivityWithMenu.class);
}

第二个版本工作没有任何问题,但我想知道 Activity.classClass 类之间有什么区别,以及为什么第一个代码段不能与 一起使用> Intent

整个功能:

String title = "Upcoming site:";


Intent notificationIntent = null;

if (siteId > 0) {
pref.setNewVar("notificationSiteId", String.valueOf(siteId));
notificationIntent = new Intent(appContext, DetailActivity.class);
} else {
notificationIntent = new Intent(appContext, MainActivityWithMenu.class);
}


notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
notificationIntent.putExtra("siteId", siteId);
PendingIntent pendingIntent = PendingIntent.getActivity(appContext, 0,
notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT);

Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
Notification.Builder nBuilder = new Notification.Builder(appContext)
.setContentTitle("Neeco - " + title)
.setContentText(text)
.setSmallIcon(R.drawable.clock_start)
.setContentIntent(pendingIntent);

boolean updateNotification = true;
if (pref.getVar("notificationText") != null && !pref.getVar("notificationText").equals(text)) {
Log.d(TAG, "New text in notification - " + text);
nBuilder.setSound(alarmSound);
nBuilder.setPriority(priority);
pref.setNewVar("notificationText", text);
} else if (pref.getVar("notificationText") == null) {
nBuilder.setSound(alarmSound);
nBuilder.setPriority(priority);
pref.setNewVar("notificationText", text);
} else {
updateNotification = false;
}

if (updateNotification) {
Notification notification = nBuilder.build();
NotificationManager mNotificationManager = (NotificationManager) appContext.getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(Config.NOTIFICATION_ID.FOREGROUND_SERVICE, notification);
}

最佳答案

它是.java文件的编译形式。类是方法、变量和数据类型的组合。每个 Java 或 Android 项目都必须至少有一个类。Android最终使用这个.class文件生成可执行的Apk

示例:

public class Data{
int ID;
String Name;
public void First_Method()
{

}
}

Activity

Activity 相当于 GUI 工具包中的框架/窗口。如果我们想使用一个activity类,我们必须在你的android项目中使用extend Activity。

示例

public class Main_Activity extends Activity{

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
}
}

关于java - Activity.class 和 Class 类的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42772992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com