Android:每次活动完成时都会生成一个新的SessionID?

Android:每次活动完成时都会生成一个新的SessionID?,android,sqlite,Android,Sqlite,我正在创建一个android应用程序,它包含3个游戏,都在不同的活动中。每次游戏结束后,会话的详细信息都会写入SQlite数据库(如分数等) 我想包括一个功能,为每个游戏生成一个sessionID,并在所有活动中保持一致和更新。也就是说,每个人都没有一个单独的ID 例如: Game 1 session completed: SessionID=1 Game 2 session completed: SessionID=2 another Game 2 session completed: Ses

我正在创建一个android应用程序,它包含3个游戏,都在不同的活动中。每次游戏结束后,会话的详细信息都会写入SQlite数据库(如分数等)

我想包括一个功能,为每个游戏生成一个sessionID,并在所有活动中保持一致和更新。也就是说,每个人都没有一个单独的ID

例如:

Game 1 session completed: SessionID=1
Game 2 session completed: SessionID=2
another Game 2 session completed: SessionID=3
Game 3 session completed: SessionID=4 etc...
我怎样才能做到

同时,我只是对SessionID使用生成的随机数(x),它在所有活动中也不一致:

//getting random number for sessionid (WILL BE CHANGED EVENTUALLY)
            Random ran = new Random();
            int x = ran.nextInt(1) + 3000;


            //Adding the new Score to the database. NOTE: SESSIONID NEEDS TO BE SORTED AND CHANGED TO PRIM KEY EVENTUALLY
            db.addScore(new Score(x, "Multiplication", UserName.getUserName(), averageMedLevel,medMax, 
                    averageAttLevel,attMax, score,myDate));
根据,您可以在数据库中指定一列,类型为
整型主键AUTOINCREMENT
,这将确保:

The ROWID chosen for the new row is at least one larger than the largest ROWID that has
ever before existed in that same table. If the table has never before contained any data,
then a ROWID of 1 is used.
这将避免您必须控制sessionid,并让它们由数据库的ROWID指定

如果确实要跟踪自己的sessionid,可以使用以下语法将它们作为insert语句的一部分插入

INSERT INTO test1(rowid, a, b) VALUES(123, 5, 'hello');

在滚动自己的唯一性和排序时,考虑使用时间戳作为SeSession ID的主要部分(例如“YYYYMDDHHMMS+游戏ID”)。谢谢你,我用了你的建议:(例如“YYYYMDDHHMMS+游戏ID”)。对于主键,它工作得很好