Android阻止用户使用应用程序

Android阻止用户使用应用程序,android,Android,我开发了一个应用程序,可以让用户根据谷歌地图找到附近的地方。想要使用我的应用程序的用户必须先使用他们的Google帐户注册,然后才能使用我的应用程序并使用他们的帐户登录。用户成功登录我的应用程序后,我的应用程序将保存一些共享首选项,以指示用户已登录。所以,在此之后,用户无需再次登录 我的应用程序中有许多活动和片段。一段时间后,我想给用户添加阻塞特性。若用户已阻止,则在管理员取消阻止其帐户之前,他们无法再次使用我的应用程序。所以,管理员可以从web服务器阻止用户帐户。管理员可以在用户使用我的应用程

我开发了一个应用程序,可以让用户根据谷歌地图找到附近的地方。想要使用我的应用程序的用户必须先使用他们的Google帐户注册,然后才能使用我的应用程序并使用他们的帐户登录。用户成功登录我的应用程序后,我的应用程序将保存一些共享首选项,以指示用户已登录。所以,在此之后,用户无需再次登录

我的应用程序中有许多活动和片段。一段时间后,我想给用户添加阻塞特性。若用户已阻止,则在管理员取消阻止其帐户之前,他们无法再次使用我的应用程序。所以,管理员可以从web服务器阻止用户帐户。管理员可以在用户使用我的应用程序时阻止用户。所以我需要一个实时系统阻塞

我需要一些在我的应用程序上实现的想法。我的应用程序包含许多活动和片段。如果想法是检查每个活动中的用户帐户并将其片段发送到数据库服务器,我认为这是个坏主意。因为我可以消耗用户的带宽,并为我提供了大量的工作。我需要一些想法,提供实时阻塞系统

因此,如果用户已被阻止,他们将无法使用我的应用程序:

  • 甚至他们也在使用应用程序
  • 即使他们试图关闭应用程序并再次打开
  • 即使他们试图在“设置”/“应用程序管理器”/“我的应用程序”/“清除数据”中清除应用程序数据
  • 甚至他们在另一个应用程序上,返回到我的应用程序(onResume())
  • 甚至他们卸载应用程序并从Play Store下载
  • 有什么想法吗?请提供一些代码或链接以供参考


    谢谢。

    您的代码中可能有一个
    布尔值被阻止

    在启动活动的
    onCreate
    中,您从服务器读取该值(因此每次打开应用程序时)并检查其值。每次读取此值时,您也可以将其存储在
    SharedReferences
    中,作为
    lastKnownIsBlockedValue
    ,然后在用户没有internet连接时读取此值。这样,如果你阻止了用户并且他们关闭了互联网,他们仍然被阻止

    此外,如果用户被阻止,在
    onCreate()
    内,检查后,您可以启动另一个活动,告诉他“您被阻止了”或类似的内容。否则,您可以继续使用应用程序的正常流程

    您的所有案例都以这种方式涵盖,而且非常简单:

    即使他们正在使用应用程序

    由于每次加载应用程序时,您都会从服务器读取数据,因此无论他们使用应用程序多长时间,一旦他们被阻止,他们就会被阻止

    即使他们试图关闭应用程序并再次打开

    与上述原因相同,另外,如果它们与internet断开连接,您可以使用存储在
    SharedReferences
    中的值

    即使他们试图在“设置”/“应用程序管理器”/“我的应用程序”/“清除数据”中清除应用程序数据

    与第一个相同的原因,如果他们有互联网。但是,如果您阻止它们,并且它们与internet断开连接,然后按“清除数据”,则可能会出现问题。如果他们设法删除存储在
    SharedReferences
    中的内容,他们将被解除阻止,但只有在他们与internet保持断开连接的情况下。老实说,我不知道清楚的数据是如何工作的,它是否删除了
    SharedReferences
    ,所以我相信这里的其他人会填补这里的空白:)

    甚至他们在另一个应用程序上,返回到我的应用程序(onResume())

    这是因为,一旦调用了
    onCreate()
    ,并且您确定用户被阻止,您就会启动第二个活动,告诉他们“对不起,您被阻止了”,或者不管怎样,该活动将调用
    onResume()
    ,而不是常规活动

    甚至他们卸载应用程序并从Play Store下载

    与第一个推理相同。您阻止的用户已在线保存,因此即使他们重新安装应用程序,您也不会受到影响。

    您可以使用GCM(Google Cloud Messaging)。请阅读

    我的想法是。管理员将向用户发送推送以阻止的时间。“在你身上接收”应用程序将通过GCM接收块推送。在receive方法中,您可以关闭应用程序,也可以将弹出窗口设置为block。同时注销用户,当他再次登录时,应用程序将检查服务器上该用户的阻止状态


    当管理员想要解除对用户的封锁时,只需将服务器上的封锁状态更改为解除封锁

    为什么需要关闭?怎么了?我需要一些想法。我必须在这里问我的问题吗?