The correct way to do this varies a bit depending on exactly what you're trying to do.  If you want to check whether the first argument is --cron, use this:
if [ "$1" = "--cron" ]; then
If you want to check whether the only argument is --cron, use this:
if [ "$*" = "--cron" ]; then
(Note that this is one of very few cases where "$*" is the right way to do something -- it expands to all arguments separated by spaces, but treated as a single word for parsing purposes.)
If you want to check whether any argument is --cron, use this:
cronopt=false
for argument; do
    if [ "$argument" = "--cron" ]; then
        cronopt=true
        break    # note: if you are scanning the arguments for other things too, remove this
    fi
done
if $cronopt; then
    ...
BTW, I'm not sure what you're using the args=($@) line for, but if you want to store the arguments in an array the correct way to do it is args=("$@") -- the quotes keep it from doing word splitting, filename expansion, etc before putting the args into the array.