Materialized views master table
From the Oracle documentation 


  When DML changes are made to master table data, Oracle Database
  stores rows describing those changes in the materialized view log and
  then uses the materialized view log to refresh materialized views
  based on the master table.1


So you should be able to see what changes are invalidating the MV.

Next you should examine the alert log to see if anything has been logged.

I wonder if you have a complex chain of materialized views?  Does one depend on another? Is only one becoming invalid and others are not?  Try this query to see what depends on what

dbms_snapshot.get_mv_dependencies(
list    IN  VARCHAR2,
deplist OUT VARCHAR2);

I would not recommend your suggested workaround until you understand what changes are invalidating the view. 

Edit: Metalink note 264036.1 says:

"This is expected behavior. When there is a DML on the master table, all the MVs based on this table are marked as INVALID. Though the status is INVALID, you will be able to query the mview.
However, the query on MV will not return latest update done in master table unless MV is refreshed."

From the way you are using the Materialized Views I am not sure why you cannot issue a refresh of each view that is marked invalid.